bbpressプラグインで任意のパンくずと組み合わせて表示する方法

2018年8月11日

WordPressでSNSや掲示板を簡単に作成できるbbpressプラグインですが、思い通りにカスタマイズしようと思うとプラグインやテーマの理解が必要になります。
今回は、パンくずの表示内容について、いろいろとカスタマイズしたいところがあったので調べてみました。

問題その1:パンくずの位置を変えたい

一番最初の課題がこれ。プラグインを使用して生成されたページには、自動的にパンくずが表示されています。
しかし、デザイン等の都合上そこに表示したくない……というケースもあるはず。

まずは削除から。
読み込まれているテンプレートファイルをたどっていくと、

<?php bbp_breadcrumb(); ?>

という記述があります。
例えば、フォーラムのアーカイブであれば、bbpress/content-archive-forum.phpに上記の記述があります。
これを削除するなりコメントアウトするなりして、非表示にしましょう。

利用しているテーマ内に該当ファイルがない場合は、bbpressプラグイン内にあるファイルをテーマフォルダに移しておきましょう。
bbpressプラグインの導入で検索をかければ、詳しく解説されているサイトがヒットするはず。

問題その2:任意の場所にパンくずを表示したい

これは簡単です。
前項で取り除いたコードを、表示したい場所に書き加えましょう。

問題その3:他のパンくずと組み合わせて使用したい

他のパンくず、プラグインであれば「Breadcrumb NavXT」などを使用している場合、bbpressのパンくずと構造が異なる場合があります。
多くのサイトの場合、例えばトピックのページであれば、「TOP > フォーラム一覧 > フォーラム > トピック」という構造になっていることが理想と思われます。これは、bbpressプラグインの出力するパンくずの構造です。
一方で、他のプラグインや通常のサイトに合わせて作成した自作のパンくずの場合、「TOP > トピック一覧 > トピックタグ > トピック」といった表示になりがちではないでしょうか。
フォーラムにカテゴリーのような意味合いを持たせる場合、SEOの観点からは後者のパンくずはあまり好ましくありません。

この問題は、bbpressを利用して作成したページと、その他のページ(通常の投稿や固定ページなど)で出力するパンくずを切り替えることで解消できます(コードは後述)。

問題その4:構造化データマークアップができない/他のパンくずとマークアップを同じようにしたい

bbpressプラグインのデフォルトのパンくずは、schema.orgなどの構造化データマークアップに対応していません。
また、他のパンくずと合わせて使用する場合、HTMLマークアップやCSSのクラス名なども統一させたいところです。

bbpressのパンくずカスタマイズ方法

ここからが本題。実際のカスタマイズ方法です。
テーマ内でパンくずを表示したい箇所では、breadcrumb.phpを読み込んでいる、という前提のもと記載します。

まず、is_bbpress()関数を用いて現在表示しているページがbbpressで生成されたものか否かを判定します。
次に、bbp_breadcrumb()関数の引数に配列でパラメータを渡し、表示する内容を変更します。

変数部分は該当する文字列が代入されているので、変更する場合はよしなに。
以下を参考にさせていただきました。英語がほとんどわからなかったけど感謝!

参考;
http://hookr.io/plugins/bbpress/2.5.9/functions/bbp_get_breadcrumb/
https://bbpress.org/forums/topic/how-do-i-edit-bbpress-breadcrumbs/