Written by Kasumi

【WordPress】get_the_categoryで子カテゴリのみ取り出す方法

WordPressで記事に親子カテゴリーを設定している。

記事ページでget_the_categoryを使いカテゴリを出力している。

親子カテゴリ全て出力されるが、子カテゴリだけ表示したい。

本記事ではこのような悩みを解決します。

子カテゴリのみ出力するコード例

<?php 
  $cats = get_the_category();
  //子カテゴリを取得
  $current_cat = '';
  foreach ($cats as $cat) {
    if (!$current_cat || cat_is_ancestor_of($current_cat, $cat)) {
      $current_cat = $cat;
    }
  }
  // 子カテゴリを出力
  echo "<a href=".get_category_link($current_cat->term_id).">".$current_cat->name."</a>";
?>

子カテゴリのみ出力するコード例です。

子カテゴリのリンクとタイトルを出力します。

まずget_the_categoryで記事に設定されてる全てのカテゴリを取得。

上記をforeachでループ処理。

ループ内でif文を使いcat_is_ancestor_ofを条件式とします。

cat_is_ancestor_ofは引数に指定したカテゴリが親かどうかを判別できます。

cat_is_ancestor_ofを否定(!)とし、親じゃなかったら変数にカテゴリを代入します。

以上で子カテゴリのみ取得できました。

あとは上記子カテゴリが入った変数をアロー演算子(->)を使ってタイトル・リンクを取り出します。

最後にそれらをechoすれば子カテゴリが出力されます。

以上で実装完了です。

まとめ

【WordPress】get_the_categoryで子カテゴリのみ取り出す方法について紹介しました。

以上で解説を終わります。

目次

関連記事

WordPress プログラミング

【ワードプレス】記事の公開日・更新日が同じとき、更新日を非表示にする方法

2020.06.25
1775
WordPress プログラミング

【簡単】Custom Post Type UI で カスタム投稿タイプのアーカイブページに親ページ(任意の固定ページ)を設定する方法

更新日:2022.04.13
7381
WordPress

【WordPress】投稿記事の本文を文字数制限して表示する方法

2023.05.28
1056
WordPress プログラミング

【popular posts】WPP_Queryクラスを使い、ランキングをカスタマイズして表示しよう。

2021.10.20
3175