WordPressで子カテゴリー、孫カテゴリーなど分岐して記事を作成する場合、カテゴリーの名前部分に親カテゴリ名のみを表示したいときの解決方法です。
目次
記述とデザイン
今回はカテゴリー表示の記述部分を抜粋して解説していくので実際使用したい場合はnews.phpやarchive.phpなど、適宜組み込んでください。
管理画面内のカテゴリー設定はこんな感じです。
カテゴリーを表示させる通常の記述
<?php the_category(‘,’); ?>
カテゴリー名がそのまま出る記述のため、それぞれ子・孫の名前が表示されてしまっています。
子、孫の親カテゴリーを表示させる記述
<a href=”<?php echo home_url(); ?>/category/<?php
$cats = get_the_category();
$cat = $cats[0];
while($cat->parent) $cat = get_category($cat->parent);
echo $cat->category_nicename
?>”>
<?php
$cats = get_the_category();
$cat = $cats[0];
while($cat->parent) $cat = get_category($cat->parent);
echo $cat->cat_name
?>
</a>
$cats = get_the_category();
$cat = $cats[0];
while($cat->parent) $cat = get_category($cat->parent);
echo $cat->category_nicename
?>”>
<?php
$cats = get_the_category();
$cat = $cats[0];
while($cat->parent) $cat = get_category($cat->parent);
echo $cat->cat_name
?>
</a>
全てカテゴリー名が親に揃いました!
スラッグも親カテゴリーを取得する記述になっているので、親に属している内容をまとめてみることができます。
記述のおおまかな解説
// カテゴリー部分のリンク設定
<a href=”<?php echo home_url(); ?>/category/<?php
$cats = get_the_category();
$cat = $cats[0];
while($cat->parent) $cat = get_category($cat->parent); // 親を呼び出し
echo $cat->category_nicename // 記事が属するカテゴリースラッグを取得
?>”>
// 表示部分設定
<?php
$cats = get_the_category();
$cat = $cats[0];
while($cat->parent) $cat = get_category($cat->parent); // 親を呼び出し
echo $cat->cat_name // 上記で取得したカテゴリーの名前を表示
?>
</a>
<a href=”<?php echo home_url(); ?>/category/<?php
$cats = get_the_category();
$cat = $cats[0];
while($cat->parent) $cat = get_category($cat->parent); // 親を呼び出し
echo $cat->category_nicename // 記事が属するカテゴリースラッグを取得
?>”>
// 表示部分設定
<?php
$cats = get_the_category();
$cat = $cats[0];
while($cat->parent) $cat = get_category($cat->parent); // 親を呼び出し
echo $cat->cat_name // 上記で取得したカテゴリーの名前を表示
?>
</a>
以上、親カテゴリーのみを表示させるphpの記述一部でした。
記述は通常よりも多くなってしまいますが、子カテゴリーや孫カテゴリーの分岐が多い際などデザインをすっきりさせるのに活用できそうですね!