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

【PHP】配列から重複した値を削除する方法

2023.02.28
834
WordPress

WordPressの【抜粋】からhtmlタグを削除する方法【the_excerpt()】

更新日:2022.05.18
1983
WordPress プログラミング

WordPress投稿ページ内の関連・その他記事一覧で現在のページを除外する方法【wp_query】

2022.04.20
3185
WordPress プログラミング

【アドミンバー】WordPressで管理画面にログインしたらページ上部に余白ができるのを解決!

2022.04.14
1672