• 解決済 ken1983

    (@ken1983)


    いつもお世話になります。

    kenと申します。

    パンくずリストの子カテゴリの表示について質問させてください。

    私は現在TDCの「AN(TCD014)」というテーマを使用しており、
    同テーマではパンくずリストが表示されないため、以下のコードを
    下記のとおり記述しているのですが、色々と調べて試してみても、
    どうしてもイメージ通りの表示がされません。

    【single.php】

    <a href="<?php bloginfo('url'); ?>">TOP</a>&nbsp;>&nbsp;
    <?php $cat = get_the_category(); echo get_category_parents($cat[0], true, '&nbsp;>&nbsp;'); ?>
    <?php the_title(''); ?>

    【page.php】

    <a href="<?php echo get_option('home'); ?>">TOP</a>&nbsp;>&nbsp;
    <?php foreach ( array_reverse(get_post_ancestors($post->ID)) as $parid ) { ?>
    <a href="<?php echo get_page_link( $parid );?>" title="<?php echo get_page($parid)->post_title; ?>">
    <?php echo get_page($parid)->post_title; ?></a>&nbsp;>&nbsp;
    <?php } ?>
    <?php the_title(''); ?>

    【archive.php】

    <a href="<?php bloginfo('url'); ?>">TOP</a>&nbsp;>&nbsp;
    <?php $cat = get_the_category(); echo get_category_parents($cat[0], true, '&nbsp;'); ?>

    イメージとしては、

    TOPページ > 親カテゴリA > 子カテゴリA > 記事ページA
    TOPページ > 親カテゴリA > 子カテゴリB > 記事ページB

    にしたいのですが、、

    実際には、

    TOPページ > 親カテゴリA > カテゴリA > 記事ページA
    TOPページ > 親カテゴリA > 記事ページB

    となってしまい、「子カテゴリB」の表示がされなくなってしまいます。

    これを前者のようにしたいのですが、どのようにすれば良いのでしょうか。

    また、「子カテゴリA」のページを見ると、表示されるパンくずリストは、

    TOPページ > 親カテゴリA カテゴリA

    となってしまい、親カテゴリAとカテゴリAの間に
    表示されるはずの「 > 」が表示されません。

    「 > 」を表示されるようにしたいのですが、
    これも合わせて解決する方法はありますでしょうか。

    大変お手数ですが、ご教示いただけますでしょうか。

    よろしくお願いいたします。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • 「子カテゴリB」の表示がされなくなってしまいます。

    記事ページBのカテゴリーが、たぶん親カテゴリAと子カテゴリBの両方なんだと思います。それを子カテゴリBだけにするとどうでしょう。

    親カテゴリAとカテゴリAの間に表示されるはずの「 > 」が表示されません。

    archive.phpに入れたコードの最後のところが

    '&nbsp;'

    となっているので > は出ません。

    '&nbsp;>&nbsp;'

    にしましょう。

    トピック投稿者 ken1983

    (@ken1983)

    gblsmさん

    ご教示ありがとうございます!

    「子カテゴリB」の表示がされなくなってしまいます。

    記事ページBのカテゴリーが、たぶん親カテゴリAと子カテゴリBの両方なんだと思います。それを子カテゴリBだけにするとどうでしょう。

    に関しては、投稿ページから親カテゴリのチェックを外して、
    子カテゴリBだけにチェックすることで解決できました!

    ってことは、子カテゴリAも親カテゴリの
    チェックは外したほうが良いのでしょうか。
    (子供がいるカテゴリは該当の子供だけにチェックを入れる)

    archive.phpに関してはご教示いただいたとおり、

    '&nbsp;>&nbsp;'
    にしましょう。

    にしてみたら、イメージに近いカタチにはなったのですが、
    カテゴリ名の表示の最後に「 > 」が余ってしまいます。

    例)TOP > 親カテゴリ > 子カテゴリ >

    最後の「 > 」を表示させないようにする方法はありますでしょうか。

    何度も申し訳ありませんが、ご教示のほど、よろしくお願いいたします。

    トピック投稿者 ken1983

    (@ken1983)

    たびたびの質問となり申し訳ございません。

    個別の記事を該当する子カテゴリのみに設定したら、親カテゴリページの
    パンくずリストの表示が下記のように、なぜか子カテゴリBのリンクも
    一緒に表示されてしまいます。

    【親カテゴリページ】
    例)TOP > 親カテゴリ > 子カテゴリB >

    イメージとしては、下記のように親カテゴリページには、
    親カテゴリのテキストのみで止めるようにしたいのですが、
    解決策はありますでしょうか。

    【親カテゴリページ】
    TOP > 親カテゴリ

    大変お手数をおかけいたしますが、ご教示いただけますと幸いです。

    phpのコードはken1983さんが書いたものなのですよね。失礼とは思いますがコードを確かめてみられましたか?

    まずパンくずの末尾に > が出るのは、get_category_parents 関数が必ずそうするからです。出さないためには、この関数を使わないで他の方法を使ってください。

    次に「親カテゴリページ」は、状況がよくわかりません。archive.phpで表示されているのですか、それともpage.phpですか?

    ところで、お使いのテーマは有償のテーマですよね、たぶん。私のところで検証は行えないので予めご承知おきくださいね。

    トピック投稿者 ken1983

    (@ken1983)

    gblsmさん

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

    まずパンくずの末尾に > が出るのは、get_category_parents 関数が必ずそうするからです。出さないためには、この関数を使わないで他の方法を使ってください。

    なるほど、使われている関数自体がそういう関数なのですね。

    phpのコードに関しては私は素人で下記のサイトを
    参照にしながら、そのままコピーしました。

    http://kawatama.net/web/1090

    言葉が足りずに申し訳ございません。

    次に「親カテゴリページ」は、状況がよくわかりません。archive.phpで表示されているのですか、それともpage.phpですか?

    archive.phpだと思います!

    ところで、お使いのテーマは有償のテーマですよね、たぶん。私のところで検証は行えないので予めご承知おきくださいね。

    大丈夫です!こうして教えて頂けるだけでも、とても助かります!
    ありがとうございます!

    最悪、アーカイブページのパンくずリストは諦めるしかないかな、
    と思っています。。。

    ひとつ提案です。たとえばWordPressの公式テーマ(Twenty Sixteenなど)にパンくずを入れる練習をしてみませんか。このフォーラムの過去のトピックが役に立つかもしれませんし、それでわからなければ質問してみましょう。

    すこし遠回りかもしれませんが、公式テーマのほうがコメントをもらいやすいと思います。そして、うまくいった後にご希望のテーマへ応用してみては。

    トピック投稿者 ken1983

    (@ken1983)

    gblsmさん

    ご提案ありがとうございます!

    そうですね、質問するばかりではなく、
    自分でも練習しなければいけないですね。

    その上で過去ログを見た方が理解しやすくもなりますしね^^

    パンくずリスト自体、結構当たり前のように見るのですが、
    色んなサイトで作り方を参考にしながら表示させようとすると、
    色々な条件分岐が必要になって、思っていた以上に複雑に
    できてるんですね。。。

    親カテゴリのページのパンくずに子カテゴリBが表示されてしまう件の原因ですが
    get_the_category を archive.php の中で使った時に、カテゴリーページそのもの(目的の親カテゴリ)ではなく、表示した個別記事のカテゴリ(子カテゴリB)を取得するからだと思います。

    ですので archive.php の中でパンくずを表示するときは get_the_category を使うのはやめましょう。
    下記のブログが参考になるかもしれません。
    WordPress プラグインなしでパンくずリストを表示 – いわしブログ

    トピック投稿者 ken1983

    (@ken1983)

    gblsmさん、

    返信遅れまして申し訳ございません。

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

    なるほどですね。
    とても勉強になります^^

    また、参考ブログのご紹介ありがとうございます!

    参考にしながら、やってみたらイメージ通りの
    パンくずリストができあがりました♪

    お忙しいなか、色々とご教示いただき、
    本当にありがとうございます!

    今後はもっと勉強して自分の力でも
    できるように頑張りたいと思います^^

    今回はたびたびのご対応本当にありがとうございました!

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「パンくずリストの子カテゴリの表示について」には新たに返信することはできません。