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

アイキャッチ登録を用いて投稿記事にサムネイルを表示させよう!【ワードプレス】

更新日:2019.11.28
295
WordPress プログラミング

【簡単】固定ページで親ページがあるか条件分岐、親ページの情報を子ページで取得する方法【wordpress】

2022.03.05
1720
WordPress

【簡単】jQueryを使って、wordpressのRSSを取得し記事を表示する方法【プラグイン不要】

更新日:2022.09.09
3082
WordPress

【WordPress】削除した記事URLが勝手にリダイレクトされる原因・対処方法

2022.07.04
1288