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】すべての投稿記事内にある同じURL・文字列を一括置換する方法【Search Regexプラグイン】

2022.02.08
689
WordPress プログラミング

【Contact Form 7】Form data to kintoneでkintone側に二重送信されるのを防ぐ【確認画面が原因】

2022.03.17
312
WordPress プログラミング

ワードプレスの管理画面をアクセス制限(IP制限)してセキュリティを強化しよう

2021.03.01
468
WordPress

一覧ページでページネーション をつける【wp_query】【ワードプレス】

更新日:2019.11.28
258