
この記事は、賢威8にbbpressを設置した際に行ったカスタマイズ内容のメモです。
カスタマイズ経緯
bbpressは、次のようにパンくずリストが表示されます。
一方賢威8は、フッター上で次のようにパンくずリストが表示されます。
よく見ると…
同じページなのに、表示されている内容が違います!
ということで、賢威8側の表示内容をbbpressに合わせてみることにしました。
カスタマイズ内容
今回のカスタマイズは、
- コードの追加
- テンプレートの書き換え
を行います。
1:コードの追加
コードの追加前の準備
次の記事の方法で、カスタマイズの準備を行います。
カスタマイズ用コード
準備した自作プラグインに次のコードを貼りつけます。
- function my_the_keni_breadcrumbs(){
- switch(get_post_type()){
- case "topic":
- case "forum":
- my_the_keni_breadcrumbs_make();return;
- default:
- the_keni_breadcrumbs();return;
- }
- }
- function my_the_keni_breadcrumbs_make(){
- $ar = bbp_get_breadcrumb();
- $ar = preg_replace('/<span.*?bbp-breadcrumb-sep.*?<\/span>/su','',$ar);
- $ar = preg_replace('/<\/p>/su','</ol></nav>',$ar);
- $ar = preg_replace('/<span.*?bbp-breadcrumb-current.*?>(.*?)<\/span>/su','<li>$1</li>',$ar);
- $ar = preg_replace('/<div.*?bbp-breadcrumb.*?<p>/su'
- ,'<nav class="keni-breadcrumb-list"><ol class="keni-breadcrumb-list_inner" itemscope="" itemtype="http://schema.org/BreadcrumbList"><li itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem">',$ar);
- $cont=0;
- $ar = preg_replace_callback('/<a.*?href="(.*?)".*?>(.*?)<\/a>/su',
- function ($matches) {
- $cont++;
- return '<li itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem">'
- .'<a itemprop="item" href="'.$matches[1].'">'
- .'<span itemprop="name">'
- .((strcmp($matches[2],'ホーム')===0) ? get_bloginfo( 'name' ).'</span> TOP' : $matches[2] . '</span>')
- .'</a>'
- .'<meta itemprop="position" content="'.$cont.'">'
- .'</li>';
- },
- $ar);
- echo $ar;
- }
処理の内容
【2~7行】bbpressの投稿タイプなら、my_the_keni_breadcrumbs_make()を実行。それ以外は、賢威8のパンくずリスト作成関数を実行
【11行】bbpressのパンくずリスト作成関数を実行して、bbpress標準のパンくずhtmlを取得
【12~31行】bbpress標準のパンくずhtmlを、賢威8のパンくずリストと同じ形式に書き換え
【33行】書き換えたパンくずhtmlを表示
2:テンプレートの書き換え
子テーマをインストールして有効にしてある場合は、親テーマの”template-parts\part-breadcrumbs.php”を子テーマにコピーします。
┃
┣ template-parts ┳ part-breadcrumbs.php
┃
┃
┣ template-parts ┳ part-breadcrumbs.php
┃(↑フォルダ作成)(↑親テーマからコピー)
子テーマを使用していない場合は、親テーマの”template-parts\part-breadcrumbs.php”を直接書き換えます。
※親テーマを書き換えた場合、テーマバージョンアップ時に変更した内容が消えます。
そのため、子テーマを用意することをおススメします。
”template-parts\part-breadcrumbs.php”の内容
- <?php if ( ! ( is_front_page() && ! is_paged() ) ) : ?>
- <!--▼▼ パン屑リスト ▼▼-->
- <div class="keni-breadcrumb-list_wrap">
- <div class="keni-breadcrumb-list_outer">
- <?php the_keni_breadcrumbs(); ?>
- </div><!--keni-breadcrumb-list_outer-->
- </div><!--keni-breadcrumb-list_wrap-->
- <!--▲▲ パン屑リスト ▲▲-->
- <?php endif; ?>
5行目を次のように書き換えます
- ・
- ・
- ・
- ・
- <?php my_the_keni_breadcrumbs(); ?>
- ・
- ・
- ・
- ・
■Googleで他サイト検索
■僕がおススメするアフィリエイト教材
■マーケティング施策ツール