• 解決済 ryoji.nakashima

    (@ryojinakashima)


    カテゴリーページで、現在のカテゴリーのスラッグを取得したいのですがうまくいきません。

    以下のようにカテゴリーを設定しています。

    親カテゴリー
     子A
      孫A1
      孫A2
     子B
      孫B1
      孫B2
     子C
      孫C1

    トップページからカテゴリーページに
    <a href="<?php bloginfo('url'); ?>/?category_name=子A">
    でリンクしています。
    カテゴリーページのテンプレートは「category.php」で共通です。

    カテゴリー子Aのページで、子Aのカテゴリー名やスラッグを取得しようと下記のようなコードを書きました。

    <?php
    $cat = get_the_category();
    $cat = $catt[0];
    $catSlug = $cat->category_nicename;
    ?>

    上記コードでスラッグ名を表示すると、子Aのページではうまく子Aのカテゴリースラッグを取得できました。

    しかし、子Bも同じようなリンクでカテゴリーページを開くと、うまく子Bのカテゴリースラッグを取得できません。孫B1のスラッグを取得してしまいます。さらに子Cのカテゴリーページだと親カテゴリーのスラッグを取得したりします。

    わかりづらいかもしれないですが、同じコードを使用しているのに取得する内容がバラバラなのです。コードが共通なのでどうしていいのかわからず困っています。

    上記コードはループ外に書いているのですが、それが問題なのでしょうか?

    最終的には、子Aのカテゴリーページに、孫ページ一覧を表示したいので、ループ内に同じようなコードを書いています。[ ]内の数字は1にしています。ループ内でもやはり取得する内容がバラバラです。

    わかりづらくて申し訳ないのですが、よろしくお願いいたします。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • $catt[0] は間違いで $cat[0] が正しいと思ってコメントさせていただきます。

    1. 子カテゴリーのアーカイブページには孫カテゴリーの投稿も自動的に含まれます。そのため子Aのつもりでも孫A1が出てくることがあります。
    2. get_the_category() は、現在の投稿のカテゴリーを取得します。ひとつの投稿に子と孫のカテゴリーが両方ついているとき、どちらが $cat[0] になるか、つまり順番は指定できません。
    3. そのコードをループを始める前に書いた場合、ふつうは、先頭の投稿に対して get_the_category されると思います。
    トピック投稿者 ryoji.nakashima

    (@ryojinakashima)

    gblsm さん

    ご返信ありがとうございます。

    > $catt[0] は間違いで $cat[0] が正しいと思ってコメントさせていただきます。

    すみません、これはタイプミスでした。

    > get_the_category() は、現在の投稿のカテゴリーを取得します。ひとつの投稿に子と孫のカテゴリーが両方ついているとき、どちらが $cat[0] になるか、つまり順番は指定できません。

    順番は指定できないのですね。これが原因のような気がします。

    どのようにしたらやりたいことができるか、まだわからないので、色々と試してみます。

    ありがとうございます。

    一つの投稿に子と孫の両方をつけるのを止めるとすっきりしますが、それだと困ったことになりますか。孫だけがついた投稿も子カテゴリーのアーカイブページに表示されますよね。

    トピック投稿者 ryoji.nakashima

    (@ryojinakashima)

    > 一つの投稿に子と孫の両方をつけるのを止めるとすっきりしますが、それだと困ったことになりますか。

    今のところ、どうやっていいかわからないので、カテゴリーの構造をちょっと考えてみた方がいいかもしれないです。

    うまく行ってるページもあるのになぁって感じですw

    投稿にカテゴリーをひとつだけつけることにして、そのカテゴリー自体をパンくずリストで表示するのはどうですか?

    トピック投稿者 ryoji.nakashima

    (@ryojinakashima)

    最終的には、カテゴリーとタグを併用することでなんとかやりたいことはできるようになりました。
    これでいいのかな?という解決方法ですが。

    gblsmさn
    ご相談に乗っていただきありがとうございます。
    色々考えるきっかけになりました。

6件の返信を表示中 - 1 - 6件目 (全6件中)

トピック「カテゴリーページでスラッグを取得すると、取得内容がバラバラ」には新たに返信することはできません。