サポート » 使い方全般 » 孫カテだけにチェックを入れていても、親カテゴリの情報を出したい

  • 解決済 bubbletmm

    (@bubbletmm)


    たべもの
     さかな
      まぐろ

    と親子孫のカテゴリがあるとして、まぐろだけに投稿画面ではチェックを入れています。

    カテゴリアーカイブ画面と固定画面で新着記事の一覧を出しているのですが、
    そこに親カテゴリ名を表示させたいです。

    孫カテゴリがひょうじされてしまい、困っています、

    おわかりになる方、ご教示いただきますと幸いです

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • 念のため確認ですが、孫カテゴリーは表示せず、親(2レベル上)のカテゴリーを表示したいということですね。(元のトピック https://ja.forums.wordpress.org/topic/152943?replies=5 から)

    公式テーマをお使いの場合、テーマを教えてください。
    カテゴリーアーカイブのテンプレートは category.php でよいですか(それとも archive.php や index.php でしょうか)?
    固定画面のテンプレートは single.php でしょうか(単一投稿を表示するテンプレート)?

    自作テーマの場合は、カテゴリーアーカイブと固定画面のテンプレートで、カテゴリー名を表示する部分のコードを確認させてください。

    トピック投稿者 bubbletmm

    (@bubbletmm)

    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;
    ?>
    トピック投稿者 bubbletmm

    (@bubbletmm)

    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

    (@bubbletmm)

    完璧です!!!!
    ありがとうございました!!!

    bubbletmmさん、検証していないコードでご迷惑をかけてすみませんでした。
    mimosafaさん、ありがとうございました。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「孫カテだけにチェックを入れていても、親カテゴリの情報を出したい」には新たに返信することはできません。