じじい

ブレッドクラム【パンくずリスト】とは、現在表示されているページの、上位ページからのリンク(階層構造)を表示する機能のことじゃ。サイトの訪問者が現在位置を直感的に理解するのに役立つじゃろう。

例: Home > AAA > BBB

固定ページに、親ページからのブレッドクラム【パンくずリスト】を表示する。

使用方法

page.phpのブレッドクラムを表示させたい場所に、以下のコードを記述する。

<a href="<?php echo get_option('home'); ?>">Home</a> » 
<?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> » 
<?php } ?>
<?php the_title(); ?>
カテゴリ: WordPress小技集 2010/04/14 9:12

コメント(3)

  1. 1
    gorton 
    2011/03/09 18:29

    はじめまして。gortonと申します。
    仕事でwordpressのカスタマイズを行っておりまして
    たまたまgoogle経由で御社のページを拝見し、
    上記を参考にwordpressテンプレートへの組み込みをさせて頂きました。
    その中で、ちょっと気付いた点ありましたのでご報告させて頂きます。

    get_post_ancestors($post->ID) で取得出来る配列は、下の階層から上の階層の順で格納されているようです。
    エントリにある記述ですと、階層が第3階層以上ある場合、以下のように逆順表示になってしまいました。
    HOME > CCC > BBB > AAA > コンテンツタイトル

    解決法として、get_post_ancestorsで取得した配列をarray_reverseで逆順にしてからforeachすると期待通りの出力になります。
    HOME > AAA > BBB > CCC > コンテンツタイトル

    以上、突然失礼致しました。

  2. 2
    Strollnet 
    2011/04/05 14:28

    gortonさん

    ご指摘ありがとう!

    まさにおっしゃる通り、逆順表示になってしまいますね。
    提示していただいた解決法にて、期待通りの出力になることも確認できました。
    本文のコード記述も修正済みです。ありがとう(^ω^)

  1. [...] 9. 固定ページにブレッドクラム【パンくずリスト】を表示する [...]

コメントをどうぞ