h-ash design works|アッシュデザインワークス
Home > News > Blog > WordPressで「パンくずリスト」を自動出力させるスクリプト:functions.phpバージョン

WordPressで「パンくずリスト」を自動出力させるスクリプト:functions.phpバージョン

WordPressで「パンくずリスト」を自動出力する際、「Breadcrumb NavXT」プラグインを利用されている方も多いと思います。ですが、WordPressテーマやSEOプラグイン(All in One SEOYoast SEO)の構造化データ出力や設定が原因で「投稿階層の表示が重複する」など、「パンくずリスト」の階層が正確に表示されない場合があります。
個人的には、利用する必要がないのであれば、プラグインはあまり使いたくはないので、functions.phpで「パンくずリスト」を自動出力させるスクリプトを作成してみましたのでご紹介します。

Index

― 目次 ―

「Breadcrumb NavXT」プラグインで「パンくずリスト」が重複する原因

  1. WordPressテーマの標準機能と競合している
    WordPressテーマに「パンくずリストの標準表示機能」がある場合、テーマと「Breadcrumb NavXT」プラグインの両方でパンくずリストが出力されているため、テーマ側の設定でパンくずリストをオフにします。
  2. SEOプラグインの構造化データと重複している
    画面上は1つしか表示されていなくても、Googleのリッチリザルトなどで構造化データ(JSON-LD)が重複して検出されることがあります。
    この場合、All in One SEOプラグインなどの「パンくずリスト(BreadcrumbList)出力機能」が有効になっていないかを確認し、重複している側の構造化データをオフにします(「All in One SEO」プラグインもしくは「Breadcrumb NavXT」プラグインの構造化データ・JSON-LD出力に関する設定をオフにします)。
  3. ●Googleリッチリザルトについて
    Googleの検索結果にパンくずリストのリッチリザルトを表示させるには、構造化データ(Schema.org)の記述が必要です。
    正しく実装することで、通常のURL表示の部分が「Home > News > Blog > ページタイトル」のように分かりやすい階層表示に変わり、検索ユーザーのクリック率(CRT)向上が期待できます。
    今回作成するスクリプトは、JSON-LD 構造化データの出力に対応させます

  4. カテゴリー階層の設定が重複している
    「Breadcrumb NavXT」プラグインの「投稿階層の表示」のチェックを外し保存します。

「パンくずリスト」の仕様

今回は、「Breadcrumb NavXT」などの「パンくずリスト」プラグインは利用せず、functions.phpで「パンくずリスト」を自動出力させるスクリプトを作成していきます。仕様については、以下のような感じで作りたいと思います。

仕様について
  • トップページ
    トップページでは「パンくずリスト」を出力しない
    階層化されたページの「パンくずリスト」を表示させるための設定(トップページのリンクや区切り文字などの設定)
  • 固定ページ
    親子関係も含めて階層化
  • カスタム投稿タイプ
    カスタム投稿タイプに対応
  • 投稿詳細ページ
    通常投稿とカスタム投稿に対応
  • タクソノミー(カテゴリー)ページ
    親子関係を含めて階層化
    ターム(カテゴリー)が複数選択されている場合、投稿に紐づくターム(カテゴリー)を1つ取得(表示)
  • 404ページ
    存在しないページ(404)に対応
  • JSON-LD 構造化データの出力
    Webページの情報を検索エンジンなどのシステムが正確に理解できるようJSON形式でデータ化

スクリプトの参考ソース

「パンくずリスト」を自動出力させるスクリプトは以下のような感じです(functions.phpに記述してください)。

[補足]
「パンくずリスト」の仕様に基づいて作成していますので、コメント箇所をご確認ください。

8~11行目の「トップページの設定」箇所は、必要に応じてご変更ください。

90行目で「複数のカテゴリーが選択されている場合、最初の1つ(インデックス 0)をパンくずリストに表示」させます。

181~188行目は「JSON-LD 構造化データの出力」に関する記述です。

最後に「Google リッチリザルト テスト」サイトで確認します。
確認したいページのURLを入力してみてください
以下のような画面が表示されていればOKです。
リッチリザルトテスト

テンプレートファイルの参考ソース

パンくずを表示させたいテンプレートファイルに以下を記述します(single.phpなどのテンプレートファイルに記述してください)。

[補足]
2行目が「パンくずリスト」を表示するためのコードです。

今回は「WordPressでパンくずリストを自動出力させるスクリプト」についてご紹介しました。
制作時の参考になりましたら幸いです。

キーワード関連キーワード