【WordPress】プラグイン「Breadcrumb NavXT」で独自の項目を追加する方法

お久しぶりです。3月の最終週が出勤しないといけなかったことと4月入ってから投稿をまとめる時間が取れなかったので、投稿がまたしても一週間近くストップしてしまいました。ですが、相変わらずWeb制作の学習は毎日継続していますし、いよいよフリーランスとして自由に活動できるようになったので、営業活動に重きを置いているのが専らの近況です。

そんな中で今回もWordPressネタですが、架空サイトを作成している際、いわゆるパンくずリストをプラグインの「Breadcrumb NavXT」を用いて実装していました。WordPressでパンくずリストを設置するならこれ!みたいな位置付けみたいですね。

私はWordPressを本格的に触り出してまだ2週間くらいなので全てが手探り状態なわけですが、今回、投稿一覧ページ(そのページのタイトルはブログ、archive.phpを作成)に遷移したとき、タイトルが表示がされなくてずっと困っていました。プラグインの設定画面で色々試してみても表示されなくて、さてどうしたらいいものかとググり続ける状態が半日ほどありました。

要するにどんな状態だったかと言うと、個別投稿ページ(single.phpを作成)に遷移すると

「ホーム > カテゴリー名 > ブログのタイトル」

となってしまい、投稿一覧ページでは

「ホーム」

しか表示されなくて、本当だったら個別投稿ページは

「ホーム > ブログ > カテゴリー名 > ブログのタイトル」

となってほしいし、投稿一覧ページでは

「ホーム > ブログ」

になってほしいという塩梅です。

この方法がなかなか分からず色々調べていたのですが、今回も無理くり?ですが対応策が見つかりました。なので、今回はその方法について忘備録がてらまとめていこうと思います。同じような症状でお悩みの方がいたら何かしら参考になるかもしれませんので、軽い気持ちで読んでもらえたらと思います。

何はともあれ、まずは結論から。今回も直張りですがこのコードをfunctions.phpに記述して対応できました。

今回の結論はこれ↓↓↓

 

function my_static_breadcrumb_adder($breadcrumb_trail)
{
if (get_post_type() ===’post’) {
$item = new bcn_breadcrumb(‘ブログ’, NULL, array(‘post’));
$stuck = array_pop($breadcrumb_trail->breadcrumbs); // HOME 一時退避
$breadcrumb_trail->breadcrumbs[] = $item; //ブログ 追加
$breadcrumb_trail->breadcrumbs[] = $stuck; //HOME 戻す
}
}
add_action(‘bcn_after_fill’, ‘my_static_breadcrumb_adder’);

 

 

 このコードはQiitaの記事から拾ってきたものを98%コピペしただけなので何も身になっていません、、、ので改めて調べてみたら、パンくずを自ら追加させる方法というのがBreadcrumb NavXTの公式ドキュメント(英語)に載っていました。それがこちらです。

 

【公式ドキュメントからの引用】

 

 add_action(‘bcn_after_fill’, ‘my_static_breadcrumb_adder’);
 function my_static_breadcrumb_adder($breadcrumb_trail)
 {
 $breadcrumb_trail->add(new bcn_breadcrumb(‘STATIC_TITLE’, NULL, array(‘home’), ‘STATIC_URL’,  NULL, true));
 }
 そもそも、このプラグインにはアクションフックが4つ?準備されているみたいで、今回使用したアクションフックが「bcn_after_fill」というパンくずリスト生成後のアクションフックになります。公式ドキュメントによると、「STATIC_TITLE」にパンくずとして表示させたいタイトルを記述し、「STATIC_URL」にそのパンくずによって表示されるURLを記述することで追加ができるみたいでした。公式ドキュメントには「たったこれだけのコードで追加できるなんて、めっちゃ簡単だろ?」みたいな感じで書いてあるのですが、めっちゃムズイっす。。
 更に調べてみると、他の方が以下のコードを記述して表示を追加させているのを発見しました。それがこちら
 if (function_exists(‘bcn_display_list’)) {
 //静的にパンくずを追加
 add_action(‘bcn_after_fill’, ‘my_static_breadcrumb_adder’);
 function my_static_breadcrumb_adder($breadcrumb_trail)
 {
 if( is_post_type_archive( ‘post’ )||is_singular(‘post’) ) {
 //投稿タイプ post の時、2番目に/news/のパンくず
 $breadcrumb_trail->add(new bcn_breadcrumb(‘お知らせ’, ‘%htitle%’, array(), ‘/news/’));
 }
 //1つめ
 $breadcrumb_trail->add(new bcn_breadcrumb(‘TOP’, ‘%htitle%’, array(‘home’), home_url()));
 }
 }
 これなんかは正しく公式ドキュメントに沿った記述ですよね。自分で記述しろと言われたら無理だけど、理解しろと言われたらギリギリなんとかなる・・・全然修行が足りないですね。
 現状、先人の叡智の結晶から恩恵を授かり、それを調べて何とか動くようにするということだけでも問題解決能力は上がっているということで。良くはないけど良しとしよう。
 こんな感じ。おわり!