念のため確認ですが、孫カテゴリーは表示せず、親(2レベル上)のカテゴリーを表示したいということですね。(元のトピック https://ja.forums.wordpress.org/topic/152943?replies=5 から)
公式テーマをお使いの場合、テーマを教えてください。
カテゴリーアーカイブのテンプレートは category.php でよいですか(それとも archive.php や index.php でしょうか)?
固定画面のテンプレートは single.php でしょうか(単一投稿を表示するテンプレート)?
自作テーマの場合は、カテゴリーアーカイブと固定画面のテンプレートで、カテゴリー名を表示する部分のコードを確認させてください。
gblsm様。
公式テーマはTwenty_Fourteenを使っています。
カテゴリアーカイブのテンプレートはcategory.phpで、以下でうまくいきました。
<?php single_cat_title(); ?> で親カテが表示されます。
固定画面のテンプレートで
<?php
$cats = get_the_category();
$cat = $cats[0];
if($cat->parent){
$parent = get_category($cat->parent);
echo $parent->cat_name;
}else{
echo $cat->cat_name;
}
?>
とかくと、子カテチェックまでは親カテが表示されますが、孫カテチェックしても孫カテが表示されてしまいます。
ご教示の程よろしくお願いいたします。
<?php
$cats = get_the_category();
$cat = $cats[0];
whlie ( $cat->parent ) {
$cat = get_category( $cat->parent );
}
echo $cat->cat_name;
?>
gblsm様
ご回答ありがとうございます。
そのまま貼り付けて使ってみましたが、画面が真っ白になり
エラーとなって使えないようでした。。。
子カテでも親カテ、孫カテでも親カテが表示されるようにしたく
ご教示願えると幸いです
検証していませんが、こちらだとどうでしょう。
<?php
$cats = get_the_category();
$cat = $cats[0];
$cat_id = $cat->term_id;
$cat_ids = get_ancestors( $cat_id, 'category' );
$top_cat_id = $cat_ids[count( $cat_ids ) - 1];
$top_cat = get_category( $top_cat_id );
echo $top_cat->name;
?>
bubbletmmさん、検証していないコードでご迷惑をかけてすみませんでした。
mimosafaさん、ありがとうございました。