WordPressカスタマイズ事例

パンくずリストの小手先カスタマイズ

WordPressでパンくずリストプラグインといえば「Breadcrumb NavXT」です。
どうしてもインストールしておきたいプラグイン9選でもご紹介しましたが、パンくずリストプラグインならこれ一択で間違いないです。
 
さて、この Breadcrumb NavXT で小手先のカスタマイズをしてみようと思います。
実際にあった事例で2件ご紹介。
 
①英語ページを表示しているときは、パンくずリストでは英語ページトップを第一階層にしたい。
WordPressの構造では日本語TOPが第一階層になり、英語ページ(パーマリンクは /en )は第二階層にするしかないところを、英語ページ表示中は日本語TOPを削除して、英語ページのTOPを第一階層にしてほしいという要望でした。
通常ですと、日本語ページも英語ページもTOPは「HOME」というタイトルにしますが、その場合、英語ページ表示の時のパンくずは

HOME > HOME > XXX

のようになりますね。
確かにヘン。
これを英語ページ表示の時だけ、英語ページTOPを第一階層にして
HOME > XXX
にしたい、ということです。

テーマのfunction.phpに以下を追記します。

function bcn_english_to_top($trail){
if( $trail->trail[2] && $trail->trail[1]->get_title()== 'HOME' ){
unset( $trail->trail[2] );
}elseif ( $trail->trail[3] && $trail->trail[2]->get_title()== 'HOME' ){
unset( $trail->trail[3] );
}elseif ( $trail->trail[4] && $trail->trail[3]->get_title()== 'HOME' ){
unset( $trail->trail[4] );
}
}
add_action('bcn_after_fill', 'bcn_english_to_top');

要するに何してるかというと、
”第一階層じゃないところに「HOME」なるタイトルのページがあったら、第一階層のほうを削除する”
ということをしているわけです。
小手先感がすごいですが、このようにすれば要望を満たせます。
 
 
次のケースです。
②ニュースなどの年月アーカイブページのとき、パンくずリストにカテゴリ名「ニュース」が表示されず年月が表示されてしまうが、年月表示はせず「ニュース」を表示させたい。
通常ですと、

HOME > 年 > 月

というようになります。確かにニュースのアーカイブなのに「ニュース」の文字がない。
年月アーカイブの場合、カテゴリ関係なく投稿すべてを取得して年月に振り分けますから、こうなってしまうのは仕方ないことなんです。
これを

HOME > ニュース

にしてくれないか、という要望です。

テーマのfunction.phpに以下を追記します。

function bcn_news_insert($bcnObj) {
if ( is_date() ){
if ( get_post_type() == 'post' && is_archive() ){
$trail[0] = $bcnObj->trail[0];
$trail[0]->set_title('ニュース');
for ( $i = 1; $i < count($bcnObj->trail); $i++ ) {
$trail[] = $bcnObj->trail[$i];
}
$bcnObj->trail = $trail;
}
}
return $bcnObj;
}
add_action('bcn_after_fill', 'bcn_news_insert');

要するに、
”投稿の年月アーカイブページの時だけ「ニュース」というのをパンくずにねじ込む”
ということをしています。
投稿にカテゴリが「ニュース」しかないときにしか使えないという、こちらもまた小手先感がすごいですが、機能としてもそれほど大きくないところは小手先でチャチャっと片づけてしまうというのも、納期のあるお仕事をしている以上大事なことだと思いますね。


関連するWordPressカスタマイズ事例