WordPress3 PHP&CMS初心者のはじめてのカスタマイズ -5ページ目

[WordPress3]function.phpにパンくずを表示する関数を追加する

以下のようなシンプルなパンくずをつけたかったのですが、


HOME ≫ 親カテゴリ ≫ 子ページ名


なぜか落ちてるソースが投稿ページしか使えなかったり、
親カテゴリがちゃんと表示されなかったり、、、

プラグインも探しましたが、
有名な「Breadcrumb」も意図どおりに表示されず、、、

パンくず程度でプラグインに依存するのも嫌だなーと思ったので、
色々合体させて作りました↓



function getTopicPath() {
if (!is_home()) {
echo '<a href="';
echo get_option('home');
echo '">ホーム</a> » ';

if (is_category() || is_single() ) {
the_category('title_li=');
if (is_single()) {
echo " » ";
the_title();
}
} elseif (is_page()) {
$ancestors = get_post_ancestors($post->ID);
foreach ($ancestors as $parid) {
$title = get_page($parid)->post_title;
echo '<a href="'.get_page_link($parid).'" title="'.$title.'">'.$title.'</a> » ';
}
the_title();
}
}
}

↑≫とか文字コードが変換されちゃてるとこは適宜直してください。

各PHPファイルで、以下のように呼び出せば、OK。

<div class="topicpath"><?php getTopicPath(); ?></div>



投稿ページも固定ページ親カテゴリがある場合は、
表示されるようになります。

もっとスマートな書き方があるんだろうけど、、
PHP初心者なので、よく分からず…。

おかしかったら指摘ください。