【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で子カテゴリのみ取り出す方法について紹介しました。
以上で解説を終わります。
目次