• 解決済 linamia

    (@linamia)


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

    現在パンくずの実装に取り組んでいるのですが
    個別記事を開いた時に、下記のコードの出力結果が

    「ホーム>親カテゴリ>記事名」

    になってしまっているので、

    「ホーム>親カテゴリ>子カテゴリ>記事名」 ※子カテゴリを追加

    にしたいと思っているのですが、可能なものでしょうか。
    ※Twentytenをカスタマイズしています。

    <?php elseif(is_single()): /* 個別記事 */ ?>
     <?php $categories = get_the_category($post->ID); ?>
    		<?php $cat = $categories[0]; ?>
    	<?php if($cat -> parent != 0): ?>
    		<?php $ancestors = array_reverse(get_ancestors( $cat -> cat_ID, 'category' )); ?>
    			<?php foreach($ancestors as $ancestor): ?>
    				<li><a href="<?php echo get_category_link($ancestor); ?>"><?php echo get_cat_name($ancestor); ?></a></li>
    				<li>></li>
    			<?php endforeach; ?>
    	<?php endif; ?>
    		<li><a href="<?php echo get_category_link($cat -> cat_ID); ?>"><?php echo $cat-> cat_name; ?></a></li>
    		<li>></li>
    		<li><?php echo $post -> post_title; ?></li>

    ※多分上記コードは、コードの一部だと思います。

    ご存じの方いらっしゃいましたらどうぞよろしくお願いいたします。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • 個別記事についている親カテゴリーを外して、子カテゴリーだけをつけた状態で試すとどうてしょう。

    トピック投稿者 linamia

    (@linamia)

    いつもありがとうございます。
    仰る通り親を外すと理想的な状態でパンくずが表示されました!

    ただ実は、コンテンツ系のサイトなので
    どうしても親と子の両方のカテゴリを使いたいのですが
    ちょっと難しそうなものでしょうか……?

    例:

    ホーム>小説(親カテゴリ)>作品タイトル(子カテゴリ)>本文(記事)

    ホーム>イラスト(親カテゴリ)>作品タイトル(子カテゴリ)>本文(記事)

    小説とイラストはカテゴリが違うので分けておきたい形です。
    ただ、もしかして、パンくずよりもカテゴリわけの見直しをした方が効果的なのであれば
    そちらの方向からも考え直してみたいと思います。

    宜しくお願いいたします!

    一つの記事(投稿)に子カテゴリーをつけた上で、親カテゴリーはつけないと仮に決めると、どんな不都合がありますか? もし検索に関する不都合なら、カテゴリーとタグを併用して解決できるかも。

    トピック投稿者 linamia

    (@linamia)

    いつもありがとうございます!

    特に不都合については考えたことが無いのですが、
    SEO的に下記のサイト構造にしようと考えていたので
    「親のチェックが必要なのでは?」と思い込んでいただけなのです。

    <TOP> <親>    <子>     <本文>
     
    【TOP】-【小説】---【小説A】---以下記事(1章~2章など)
                L【小説B】---以下記事(1章~2章など)
                L【小説C】---以下記事(1章~2章など)

         L【イラスト】-【イラストA】-以下記事(1章~2章など)
                L【イラストB】-以下記事(1章~2章など)
                L【イラストC】-以下記事(1章~2章など)

         L【投稿作品】-【作品A】---以下記事(1章~2章など)
                L【作品B】---以下記事(1章~2章など)
                L【作品C】---以下記事(1章~2章など)

    将来的には<親><子>=カテゴリページの部分も
    オリジナルコンテンツを入れて、ページとして生成しようかなと思っています。

    ただ、このことと、親にチェックを入れるか否かが
    別問題なのであれば、仰る通り親にチェックをいれないことを
    考えてみたいと思います。(あくまでも勝手に思い込んでいただけなので…)

    なんだか問題がすり替わってしまっているようで申し訳ございません。

    例えば「選んだカテゴリーの投稿」という条件で投稿を検索したいとします(例えばカテゴリーのアーカイブ)。このとき

    query_posts( 'cat=4' );
    // $myposts = get_posts( 'cat=4' ); も同様。

    とすると、ID=4 のカテゴリーまたはその子孫カテゴリーの投稿を取得できるので、親カテゴリーをつけなくても投稿を検索できます。

    ところで、linamiaさんが最初に示されたコードを修正して「投稿に親カテゴリーと子カテゴリーの両方がついているが親カテゴリーを無視」するには、3行目の

    <?php $cat = $categories[0]; ?>

    を次のように変えてみてください。

    <?php do { // 投稿にカテゴリーが一つもついていなければエラーになります。
        $cat = array_shift( $categories );
    while ( 0 == $cat->parent && 0 != count( $categories ) ); ?>

    すみません、while の直前に } を足してください。

    トピック投稿者 linamia

    (@linamia)

    拝見するのが遅くなってしまってすみません!
    取り急ぎ仰る通りの書き換えで実装できました!
    いつも本当にありがとうございます。

    何だか親カテゴリの存在意義について
    よくわからなくなってきました……。
    どういうサイトだとどういう風に上手く生きてくるのか
    今後もきちんと考えつつ、勉強をしてみたいと思います。

    この問題についてはいったん閉じさせて頂くようにします。
    気付きと知識をありがとうございました!

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「パンくずの表示を「ホーム>親カテゴリ>子カテゴリ>記事名」にしたい」には新たに返信することはできません。