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

WordPressのタグ選択をチェックボックスに変更する方法

2022.05.09
1001
WordPress プログラミング

【ワードプレス】head内に自動生成される不要なタグを削除する方法

2021.12.08
3006
WordPress プログラミング

【wordpress】全テンプレートページで使用可能なグローバル変数を定義する方法【簡単】

2022.02.23
5419
WordPress

カスタム投稿タイプを含めた検索ページを作ってみよう【ワードプレス】

更新日:2019.11.28
1851