Field Display Label
フォームラベルとは異なる表示用ラベルをフィールドに定義できるようにします。
field_display_label
インストール
composer require 'drupal/field_display_label:^2.0'
composer require 'drupal/field_display_label:8.x-1.3'
概要
Field Display Label モジュールは、コンテンツを編集するときと表示するときで、フィールドに異なるラベルを設定する機能を提供します。これは、データ入力時に適したフィールドラベルと、コンテンツ表示時に意味のあるラベルが異なる場合に特に便利です。
例えば、フィールドはコンテンツ作成時の明確さのために編集フォームでは「本文」とラベル付けされていても、公開されたコンテンツを表示するときは「説明」や「記事内容」として表示することができます。この分離により、コンテンツ編集者は直感的なフォームラベルで作業しながら、サイト訪問者にはコンテキストに適した表示ラベルを提供できます。
このモジュールは、すべてのフィールドの設定ページに「表示ラベル」オプションを追加することで、Drupal のフィールド設定システムとシームレスに統合されます。表示ラベルが設定されると、すべての表示モードにおけるフィールドレンダリング中にデフォルトのフィールドラベルが自動的に置き換えられます。
Features
- 設定可能なすべてのフィールドのフィールド設定フォームに「表示ラベル」フィールドを追加
- テンプレートのオーバーライドなしにフォーム編集とコンテンツ表示で異なるラベルを使用可能
- クリーンな設定エクスポートのため、Drupal のサードパーティ設定システムを使用して表示ラベル設定を保存
- すべての表示モードに対してフィールド前処理中に表示ラベルを自動的に適用
- コンテンツタイプ、Taxonomy Term、ユーザー、カスタム Entity を含む、あらゆるフィールド可能な Entity タイプで動作
- 元のフィールドラベルを変更せず、編集体験を維持
Use Cases
多言語対応のフィールドラベリング
コンテンツ編集には技術的または内部的なフィールドラベル(例:'field_hero_cta_text')を使用しながら、訪問者にはユーザーフレンドリーなラベル(例:'行動喚起')を表示します。この分離により、コンテンツ編集者がフィールドを識別しやすくなりつつ、エンドユーザーには適切なラベルを提供できます。
コンテキストに応じたフィールド命名
「サマリー」フィールドはコンテンツ編集者には適切かもしれませんが、サイト訪問者には「この記事について」や「概要」の方がより意味があるかもしれません。同じフィールドを使用しながら、異なるコンテンツタイプに対して異なる表示ラベルを設定できます。
シンプルなテーマ作成ワークフロー
フィールドラベルをオーバーライドするためにカスタムフィールドテンプレートを作成したり template_preprocess フックを使用したりする代わりに、管理 UI から表示ラベルを簡単に設定できます。これにより、カスタムテーマコードの必要性が減少します。
一貫した編集と多様な表示
コンテンツ編集者のトレーニングやドキュメンテーションのために編集インターフェースでコンテンツタイプ間で一貫したフィールドラベルを維持しながら、各コンテンツタイプのコンテキストに基づいてラベルが訪問者に表示される方法をカスタマイズできます。
Tips
- 表示ラベルは、フィールドラベルが表示されるすべての表示モードに影響します。表示モードごとに異なるラベルが必要な場合は、代わりにカスタムテンプレートの使用を検討してください。
- 別の表示ラベルが不要な場合は、表示ラベルを空のままにしてデフォルトのフィールドラベルを使用してください。これが推奨されるアプローチです。
- 表示ラベルは、Configuration Translation モジュールが有効になっている場合、Drupal の設定翻訳システムを通じて翻訳をサポートします。
- 元のフィールドラベルは変更されず、常にフォームで使用されるため、コンテンツ編集体験は維持されます。
Technical Details
Admin Pages 1
/admin/structure/types/manage/{content_type}/fields/{field_name}
このモジュールは既存のフィールド設定フォームに「表示ラベル」フィールドを追加します。これにより、フロントエンドでフィールドを表示するときに使用される別のラベルを設定でき、元のラベルはフォーム編集用に維持されます。
Hooks 3
hook_form_field_config_edit_form_alter
フィールド設定編集フォームを変更して、表示ラベルテキストフィールドを追加します
hook_preprocess_field
設定されている場合、ラベルを表示ラベルに置き換えるためにフィールド変数を前処理します
hook_help
ヘルプページでモジュールのヘルプテキストを提供します
Troubleshooting 3
フィールドのラベル表示設定が「表示管理」設定で「非表示」に設定されていないことを確認してください。表示ラベルは、フィールドラベルが表示されるように設定されている場合(上部またはインライン)にのみ表示されます。
Drupal の Cache をクリアし、モジュールが正しく有効になっていることを確認してください。設定は「表示管理」フォームではなく、フィールド設定フォームに表示されます。
表示ラベルはフィールド設定 Entity のサードパーティ設定として保存されます。設定を含めるには、特定のフィールド設定(field.field.*.yml)を再エクスポートしてください。