WordPressのパンくずナビゲーション(Breadcrumb NavXT)をカスタマイズする
Posted by admin at 9:20 日時 2011/11/16
メモ程度に。WordPressにはBreadcrumb NavXTという高機能なパンくずリスト表示のプラグインがあります。かなり詳細な設定が可能ですが、設定画面からは変更できないカスタマイズを加える際は、アクションフックを用いて独自のカスタマイズを追加することができます。
今回は項目名が「ほむほむ」だった時にその項目をパンくずナビから外すという処理を作ってみました。サイトの構造によっては特定のページをパンくずに表示させたくない場合がありますので、利用機会は多いかと思います。アクションフックがあることを知らなくて、以前は特定の場合ではプラグインをあきらめて自前で書いていましたが、このほうが簡単です。
function my_filter_breadcrumbs($bcnObj) { $trail = array(); if ( count($bcnObj->trail) > 0 ) { for ( $i = 0; $i < count($bcnObj->trail); $i++ ) { if ( 'ほむほむ' != $bcnObj->trail[$i]->get_title() ) { $trail[] = $bcnObj->trail[$i]; } } } $bcnObj->trail = $trail; return $bcnObj; } add_action('bcn_after_fill', 'my_filter_breadcrumbs');
アクションフックもフィルターフックもそうですが、フックがかけてある方の関数のソースを読み込まないと使えないので、なかなか難しいですね。
2011/12/3追記:バグ修正しました
2012/7/20追記:パンくずナビの先頭に任意のテキストとURLで項目を追加する
function my_filter_breadcrumbs($bcnObj) { $bcnObj->add(new bcn_breadcrumb('ホーム', '<a title="%title%." href="%link%">%htitle%</a>', '', 'http://example.com/')); return $bcnObj; } add_action('bcn_after_fill', 'my_filter_breadcrumbs');
2013/10/6追記:特定の項目のテンプレートを変更する
デフォルトテンプレートはこちらです
<a title="Go to %ftitle%." href="%link%" class="%type%">%htitle%</a>