• たびたび失礼いたします。
    よろしくお願いいたします。
    <?php $cat = get_the_category(); $cat = $cat[0];{echo $cat->category_parent;} ?>
    上記のコードで親カテゴリーIDを呼び出し、カテゴリーごとにヘッダー画像等を読み分けて表示させているのですが、上記の配列の中に、IDの数字順で入っていると思っていたのですが、条件によっては親がないときの「0」が返され、画像が表示されなくなります。
    その条件というのは、カテゴリをいくつかつけたりスラッグやカテゴリ名を変えてみたりしたところ、どうも親も含めたカテゴリ名の並び順で、親が一番最初にきたときに0が返されるようです。

    <?php $cat = get_the_category(); $cat = $cat[0];{echo $cat->category_parent;} ?>
    こうする以前にはcategory_parentの部分をcategory_nice_nameにしていて、
    結果の不安定なところがあり、最初に決めておいたカテゴリID(3など若い数)を出力できると思ったので現在のコードに変えました。

    変えた際に配列等の書き方も変えないといけなかったのでしょうか?

    ・親A(またはB)カテゴリを選択しているときも
    ・子Aa~(またはBa~)カテゴリを選択しているときも
    同じIDを確実に出力

    する方法はありますでしょうか?
    また、確実には無理でも、若いIDを表示させる、またはカテゴリ名などを変更で高確率で出力できる、といった折衷案的な方法はありますでしょうか?

    おわかりの方がおられましたら教えてください。
    どうぞよろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • <?php $cat = get_the_category(); $cat = $cat[0];{echo ($cat->category_parent ? $cat->category_parent : $cat->cat_ID);} ?>

    こうかな?

    トピック投稿者 marimo009

    (@marimo009)

    ご回答ありがとうございます!出ました!
    ですが、個別記事のページに行った際には、全てのカテゴリが出力されてしまいます。
    また、その際にカテゴリIDをファイル名に代入してカテゴリ別に違う画像を表示している部分は、カテゴリなしの「0」が返されていて、画像が「×」になってしまっています。
    それから、同じ書き方でサイドバーに、同じ親カテゴリの月別アーカイブ一覧を出力しているつもりなんですが、実際には全てのブログのアーカイブになってしまっているようです。

    ・個別ページに行っても親カテゴリのIDを出力したい
    ・個別ページや、カテゴリ別の一覧ページに、その親カテゴリの下にある記事だけが表示される月別アーカイブを表示させたい

    これらは、可能なのでしょうか?上記二点は別の書き方でもけっこうですので、
    片方だけでもおわかりの方がおられましたら、お力をお貸しください!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「親カテゴリ名またはID、スラッグなどを確実に出力したい」には新たに返信することはできません。