Easy Breadcrumb
Drupalのコアシステムパンくずリストを拡張し、現在のページタイトルと多数のカスタマイズオプションを備えた、設定可能なパスベースのパンくずリストを提供します。
easy_breadcrumb
インストール
composer require 'drupal/easy_breadcrumb:^2.0'
概要
Easy Breadcrumbは、Drupalのコアパンくずリスト機能を強化する高度に設定可能なパンくずリストモジュールです。現在のURLパスエイリアスとページタイトルに基づいてパンくずリストを自動的に構築し、各ページの手動設定を必要とせずにユーザーフレンドリーなナビゲーション支援を提供します。
このモジュールは適切なデフォルト設定ですぐに動作しますが、パンくずリストに表示されるセグメントの制御、タイトル変換モード(大文字化)、正規表現パターンを使用したカスタムパンくずリストパス、タイトル置換、パス除外、タクソノミータームの階層サポートなど、広範なカスタマイズオプションを提供します。
主要な機能として、SEO目的でパンくずリストデータをJSON-LD構造化データとして出力する機能があり、検索エンジンがサイトの階層を理解するのに役立ちます。また、Redirectモジュールと統合してパンくずリスト構築時にURLリダイレクトをたどることもできます。
Features
- 現在のページタイトルを最後のパンくずリストセグメントとして自動的に含める
- 一貫したナビゲーションのためにURLパスエイリアスからパンくずリストを構築
- SEO向けJSON-LD構造化データ出力(Schema.org BreadcrumbList)
- カスタムタイトル付きのホーム/フロントページセグメントを設定可能
- 複数のタイトル変換モード:各単語の先頭を大文字、最初の文字のみ、すべて大文字、または特定の単語を強制
- 複雑なURLマッチング用の正規表現パターンサポートによるカスタムパンくずリストパス
- セグメント表示名をカスタマイズするタイトル置換ルール
- パンくずリストから特定のパスを非表示にするパス除外ルール
- パンくずリストでのタクソノミーターム親階層のサポート
- Entityベースのパンくずリストタイトル用の代替タイトルフィールドサポート
- ページタイトルが利用できない場合のメニュータイトルフォールバック
- パンくずリストの長さを制御するセグメント制限
- 設定可能な長さと省略記号によるタイトル切り詰め
- 重複/繰り返しパンくずリストセグメントの削除
- 多言語サイト向けの言語パスプレフィックス処理
- URLリダイレクトをたどるRedirectモジュールとの統合
- パンくずリストリンクに絶対パスまたは相対パスを使用するオプション
- パンくずリストを表示する前の最小セグメント数しきい値
- 管理ページでのパンくずリストの有効化/無効化オプション
Use Cases
Eコマース商品ナビゲーション
深い商品階層を持つEコマースサイトでは、Easy Breadcrumbを設定してフルパスを表示します:ホーム > カテゴリー > サブカテゴリー > 商品名。実際の商品名を表示するために「利用可能な場合は実際のページタイトルを使用」を有効にし、タクソノミーベースのカテゴリーページでは「親階層を追加」を有効にして親カテゴリーを自動的に含めます。
SEO最適化パンくずリスト
「現在のパンくずリストを構造化データとして追加」を有効にして、HTMLヘッドにJSON-LDマークアップを出力します。これにより検索エンジンがサイト階層を理解しやすくなり、検索結果にパンくずリストが表示される可能性があります。完全なパンくずリストデータのために「現在のページをセグメントとして含める」が有効になっていることを確認してください。
多言語サイトのパンくずリスト
言語パスプレフィックス(/en/、/de/、/fr/)を使用するサイトでは、言語プレフィックスをパンくずリストセグメントとして表示するかどうかを設定できます。デフォルトでは、言語プレフィックスはより整ったナビゲーションのためにパンくずリストから非表示になります。
カスタムブランドパンくずリスト
'ucforce'大文字化モードと「強制的に大文字にする単語」を組み合わせて使用し、URLの構造に関係なく、ブランド名、商品名、または頭字語がパンくずリストで常に一貫した大文字化で表示されるようにします。
クリーンURLパスを持つブログ
/blog/category/2024/my-article-titleのようなブログ構造では、「除外するパス」機能を使用してパンくずリストから日付セグメント(2024)を非表示にし、よりクリーンなナビゲーションを実現します:ホーム > ブログ > カテゴリー > My Article Title。
ランディングページのパンくずリスト
「カスタムパンくずリストで置換するパス」を使用して、サイト階層に従わないランディングページに特定のパンくずリストを定義します。例えば、/spring-saleにあるキャンペーンページには、「セール」ページが存在しなくても、ホーム > セール > 春のセールというカスタムパンくずリストを設定できます。
SEO向け代替タイトルフィールド
コンテンツタイプに'field_breadcrumb_title'(または独自のフィールド)というフィールドを追加します。これにより、編集者はフルページタイトルとは別に、パンくずリストにのみ表示される短いタイトルやキーワード最適化されたタイトルを指定できます。例えば、「初心者のための完全なDrupalモジュール開発ガイド」というタイトルのページには、単に「モジュール開発ガイド」というパンくずリストタイトルを設定できます。
シンプルなページでパンくずリストを非表示
「パンくずリストセグメント最小数」を使用して、「ホーム」のみまたは非常に短いパンくずリストしか表示されないページでパンくずリストを非表示にします。意味のあるナビゲーション階層がある場合にのみパンくずリストを表示するには、2または3に設定します。
Tips
- モジュールはインストール後すぐに適切なデフォルト設定で動作します - 初期設定は不要です
- 「代替タイトルフィールド」機能を使用して、コンテンツ編集者がページタイトルに影響を与えずにパンくずリストテキストを制御できるようにします
- 正規表現でカスタムパスを定義する際は、括弧を使用してキャプチャグループを作成し、セグメントURLで$1、$2などで参照できます
- 'ucwords'大文字化モードは'of'、'and'、'the'などの一般的な小文字単語を尊重します - あなたの言語に合わせてこのリストをカスタマイズしてください
- より良いSEOのためにJSON-LD構造化データを有効にしてください - Googleが検索結果にパンくずリストを表示する可能性があります
- 大規模サイトでは、パス除外を使用して/searchや/ajaxなどのユーティリティパスをパンくずリストから非表示にします
- カスタムパスの<title>プレースホルダーを使用すると、カスタムパンくずリスト定義で実際のページタイトルを使用できます
- 「ホーム」のみを表示するパンくずリストを避けるために、最小セグメント数を2に設定することを検討してください
- Redirectモジュールを使用する場合は、「リダイレクトをたどる」を有効にして、パンくずリストが正規URL構造を反映するようにしてください
Technical Details
Admin Pages 1
/admin/config/user-interface/easy-breadcrumb
セグメント表示、タイトル変換、カスタムパス、除外、SEO設定など、Easy Breadcrumbモジュールのすべての側面を設定します。
権限 1
Hooks 1
hook_system_breadcrumb_alter
Easy Breadcrumbが尊重するDrupal coreのhook。他のモジュールがパンくずリストをレンダリング前に変更できるようにします。Easy BreadcrumbはJSON-LD構造化データを生成する際にこのhookを呼び出します。
Troubleshooting 8
システムパンくずリストBlockがThemeのBlock配置でリージョンに配置されていることを確認してください。Easy Breadcrumbは独自のBlockを提供するのではなく、既存のシステムパンくずリストBlockを強化します。また、ページが「パンくずリストセグメント最小数」設定を満たす十分なセグメントを持っているか確認してください。
Easy Breadcrumb設定で「利用可能な場合は実際のページタイトルを使用」を有効にしてください。Viewsページを使用している場合は、Viewに適切なページタイトルが設定されていることを確認してください。カスタムルートの場合は、_titleまたは_title_callbackが定義されていることを確認してください。
設定で「繰り返される同一セグメントを削除」を有効にしてください。異なるURLで重複が引き続き表示される場合は、「繰り返される同一セグメントを削除 - テキストのみで検証」も有効にして、テキストの一致のみに基づいてセグメントを削除します。
設定で「現在のパンくずリストを構造化データとして追加」を有効にしてください。JSON-LDはシステムパンくずリストBlockがレンダリングされた場合にのみ追加されるため、Blockが配置され表示されていることを確認してください。ページソースでヘッド内の<script type="application/ld+json">タグを確認してください。
設定で「管理ページに適用」が有効になっているか確認してください。無効にすると、管理ルートはEasy Breadcrumbの代わりにDrupalのデフォルトパンくずリストビルダーを使用します。
正規表現ベースのカスタムパスの場合、パターンに'regex!'プレフィックスが付いており、スラッシュが適切に処理されていることを確認してください。パターンを段階的にテストしてください。非正規表現パスの場合は、パスが完全に一致していることを確認してください(設定に応じて先頭のスラッシュの有無を含む)。
詳細設定で「親階層を追加」を有効にしてください。これはタクソノミータームページを直接表示する場合にのみ適用され、タームを参照するコンテンツには適用されません。
Easy Breadcrumb設定を変更した後、DrupalのCacheをクリアしてください。パンくずリストはルートとURLパスごとにCacheされます。drush crまたはパフォーマンスページを使用してCacheをクリアしてください。
Security Notes 3
- モジュールはすべてのユーザー提供タイトルをDrupalのXSSフィルタリングを通してスクリプトインジェクションを防止します
- カスタムパス設定は「administer easy breadcrumb」権限を持つユーザーのみがアクセスできます
- 各パンくずリストセグメントに対してアクセスチェックが実行されます - ユーザーはアクセスできるページへのリンクのみが表示されます