Schema.org Blueprints
Schema.orgをDrupalウェブサイトのコンテンツアーキテクチャと構造化データの設計図として使用し、完璧なデータ構造、洗練されたAPI(JSON:API)、優れたSEO(JSON-LD)を提供します。
schemadotorg
概要
Schema.org Blueprintsモジュールは、Schema.orgをDrupalウェブサイトのコンテンツアーキテクチャと構造化データの設計図として使用します。CSVファイルからSchema.orgのデータをDrupalにインストールし、DrupalエンティティをSchema.orgタイプにマッピングするための包括的なツールを提供します。
このモジュールは、Drupalでセマンティックに構造化されたコンテンツを構築するためのコア基盤として機能します。Schema.orgマッピングとマッピングタイプエンティティを定義し、管理者がSchema.orgタイプ定義に基づいてエンティティタイプとフィールドを作成できるようにします。Schema.orgの命名規則がDrupalの内部命名規則とシームレスに連携するようにします(camelCaseからsnake_caseへの変換と文字数制限の処理)。
Paragraphs、Media、JSON-LD、JSON:API、Metatag、Pathautoなどのコントリビュートモジュールとの統合を提供する52以上のサブモジュールにより、Schema.org Blueprintsはセマンティックに豊富でSEO最適化されたDrupalサイトを構築するための完全なエコシステムを提供します。このモジュールは、包括的なAPIサポートを通じて、従来のDrupalレンダリングとヘッドレス/デカップルドアーキテクチャの両方をサポートします。
Features
- CSVファイルからSchema.orgタイプとプロパティデータをDrupalデータベーステーブルにインストールおよび管理
- DrupalエンティティタイプやバンドルをSchema.orgタイプにマッピングするSchema.orgマッピング設定エンティティを定義
- 各Drupalエンティティタイプのデフォルト設定を提供するSchema.orgマッピングタイプ設定エンティティを定義
- Schema.orgタイプ定義からエンティティタイプ、バンドル、フィールドを自動的に構築
- Schema.orgのcamelCase名をDrupalのsnake_caseに変換するための設定可能な命名規則を提供(長さ制限のための省略形を含む)
- サービスとAPIを通じてSchema.orgタイプとプロパティを他のDrupalモジュールに公開
- Schema.orgタイプによるエンティティ参照のフィルタリング用Schema.orgタイプエンティティ参照選択プラグインを提供
- Schema.orgタイプによるViewsの結果フィルタリング用Schema.orgタイプViewsフィルタープラグインを提供
- 追加のSchema.orgマッピングをサポート(エンティティごとに複数のタイプ)
- Duration、Entity Browser、Focal Point、Linkit、Media Library Media Modifyなどのコントリビュートモジュールと統合
- Schema.orgタイプマッピングの作成と削除のためのDrushコマンドを提供
- DrupalレシピによるSchema.orgタイプ作成のためのConfig Actionプラグインを提供
- UIコンポーネント用の再利用可能なJavaScriptライブラリ(jsTree、Mermaid、CodeMirror)を管理
- JSON-LD、JSON:API、Paragraphs、Media、Metatag、Pathautoなどの統合のための52以上のサブモジュール
Use Cases
セマンティックに構造化されたコンテンツサイトの構築
Schema.org Blueprintsを使用して、Article、Event、Organization、Person、PlaceなどのSchema.orgタイプに基づいたコンテンツタイプを作成します。モジュールは自動的に適切なフィールドを作成し、ディスプレイを設定し、コンテンツアーキテクチャが確立されたセマンティックWeb標準に従うことを保証します。これにより、コンテンツの意味の相互運用性と理解が向上します。
SEOのためのJSON-LD構造化データの実装
schemadotorg_jsonldサブモジュールを有効にすると、ページヘッダーにJSON-LD構造化データを自動的に生成します。この構造化データはGoogle、Bingなどの検索エンジンに認識され、リッチスニペットや強化された検索結果を通じてサイトのSEOを向上させます。データは追加の設定なしにSchema.orgマッピングに基づいて生成されます。
ヘッドレス/デカップルドDrupalサイトの作成
schemadotorg_jsonapiサブモジュールを使用して、Schema.org規約に従った標準化されたJSON:APIを通じてコンテンツを公開します。これにより、フロントエンド開発者が内部のDrupal構造に関係なく利用できる予測可能で十分にドキュメント化されたAPIエンドポイントが作成され、デカップルドアーキテクチャの実装が簡単になります。
コンテンツモデルの迅速なプロトタイピング
'drush schemadotorg:create-type node:Event'などのDrushコマンドを使用して、Schema.org定義に基づいたすべての推奨フィールドを持つ完全なコンテンツタイプを素早くスキャフォールドします。これにより、ゼロから構築するのではなく、業界標準のタイプ定義から始めることでコンテンツモデリングが加速します。
医療・ヘルスケアウェブサイトの構築
Hospital、Physician、MedicalCondition、Drug、MedicalProcedureなどのタイプを含むSchema.orgの広範な医療語彙を活用します。モジュールの事前設定された医療タイプカテゴリとプロパティマッピングは、適切な構造化データを持つ準拠したヘルスケア情報サイトの構築を支援します。
イベントまたは教育プラットフォームの作成
Event、Course、CourseInstance、EducationalOrganizationなどのSchema.orgタイプを使用して、イベント管理や教育プラットフォームを構築します。モジュールは、コースの前提条件、イベントスケジュール、教育資格などの複雑な関係を適切なフィールドタイプで処理します。
レシピや食品関連サイトの実装
RecipeのSchema.orgタイプは、recipeIngredient、recipeInstructions、cookTime、prepTime、nutrition、suitableForDietなどのプロパティで広範に設定されています。JSON-LD出力と組み合わせることで、レシピがGoogleのレシピリッチスニペットの対象になります。
Paragraphsを使用した複雑なコンテンツ階層の管理
schemadotorg_paragraphsを使用して、PostalAddress、ContactPoint、OpeningHoursSpecification、HowToStepなどのSchema.org無形タイプのパラグラフタイプを作成します。これらは親コンテンツタイプ内に埋め込んで、複雑なネストされたSchema.org構造をモデル化できます。
Tips
- まずSchema.org Blueprints Helpモジュール(schemadotorg_help)を有効にして、/admin/helpですべてのサブモジュールの包括的なドキュメントにアクセス
- Schema.org Blueprints Reportモジュール(schemadotorg_report)を使用して、Schema.orgタイプとプロパティをDrupal名変換と共に閲覧・検索
- mapping_setモジュールから始めて、関連するタイプを一緒に作成(例: ディレクトリ用のPerson + Organization + Place)
- マッピングを作成する前に/admin/config/schemadotorg/settings/typesでタイプレベルのデフォルトプロパティを設定して、一貫したフィールドセットを確保
- !propertyName構文を使用して、不要な継承されたプロパティを明示的に削除
- Schema.orgタイプカテゴリはUIでタイプを整理するのに役立ちます - サイトのニーズに合わせて色とグループ化をカスタマイズ
- ヘッドレス/デカップルドサイトでは、schemadotorg_jsonapiとschemadotorg_jsonldの両方を有効にして、一貫したAPIと構造化データを取得
- プロパティ設定のフィールドの重みは、フォームとディスプレイにフィールドが表示される順序を制御 - マッピング作成前に設定
- schemadotorg_diagramモジュールを使用してSchema.orgタイプの関係を可視化し、コンテンツアーキテクチャを検証
- additional_mappings機能により、AuthorでもあるPersonのような複雑なコンテンツ用に単一のDrupalバンドルに複数のSchema.orgタイプを追加可能
Technical Details
Admin Pages 8
/admin/config/schemadotorg
Schema.org Blueprints設定のメイン管理ランディングページ。マッピング、マッピングタイプ、設定へのアクセスを提供します。
/admin/config/schemadotorg/mappings
DrupalエンティティタイプからSchema.orgタイプへのすべてのマッピングを一覧表示します。各マッピングのエンティティタイプ、バンドル、マッピングされたSchema.orgタイプを表示します。既存のマッピングの編集と削除が可能です。
/admin/config/schemadotorg/types
利用可能なDrupalエンティティタイプのデフォルト設定を持つマッピングタイプを一覧表示します。各マッピングタイプは、Schema.orgタイプが特定のDrupalエンティティタイプ(node、user、media、paragraphなど)にどのようにマッピングされるかを定義します。
/admin/config/schemadotorg/settings
一般、タイプ、プロパティ、名前の設定サブページへのアクセスを提供するメイン設定ランディングページ。
/admin/config/schemadotorg/settings/general
要件チェックやSchema.orgデータソースを含むSchema.org Blueprintsモジュールの一般設定を構成します。
/admin/config/schemadotorg/settings/types
デフォルトのタイプ定義、プロパティ、フィールドタイプ、カテゴリを含むSchema.orgタイプのデフォルト設定を構成します。
/admin/config/schemadotorg/settings/properties
フィールド定義、フォーマッター設定、フィールドタイプ、重み、無視されるプロパティを含むSchema.orgプロパティのデフォルト設定を構成します。
/admin/config/schemadotorg/settings/names
Schema.orgのタイプとプロパティの命名規則をDrupalのバンドルとフィールドの命名規則に変換する方法を構成します。Schema.orgはcamelCaseを使用し、Drupalは32文字制限のsnake_caseを使用します。
権限 1
Hooks 7
hook_schemadotorg_property_field_type_alter
Schema.orgプロパティで利用可能なフィールドタイプを変更します。モジュールがプロパティをマッピングする際にフィールドタイプオプションを追加または並び替えることができます。
hook_schemadotorg_property_field_prepare
Schema.orgマッピングフォームが表示される前にプロパティのフィールドデータを準備します。デフォルトフィールド値のカスタマイズを可能にします。
hook_schemadotorg_bundle_entity_alter
エンティティが作成される前にバンドルエンティティタイプの値を変更します。エンティティタイププロパティの変更を可能にします。
hook_schemadotorg_property_field_alter
フィールドが作成される前にフィールドストレージとフィールド値を変更します。フィールド設定、ウィジェット、フォーマッターの包括的なカスタマイズを可能にします。
hook_schemadotorg_mapping_defaults_alter
Schema.orgマッピングエンティティのデフォルト値を変更します。使用前にマッピングのデフォルトを変更できます。
hook_schemadotorg_mapping_apply
Schema.orgマッピングが適用(保存)される際に応答します。マッピングが変更されたときにモジュールが追加のアクションを実行できます。
hook_ENTITY_TYPE_postsave
Schema.orgマッピングエンティティが挿入または更新された後に応答します。メインマッピングが保存された後に追加のマッピングを追加するために使用されます。
Drush Commands 5
drush schemadotorg:create-type
エンティティタイプとSchema.orgタイプのペアを指定してSchema.orgタイプを作成します。Drupalエンティティバンドルとすべてのマッピングされたフィールドを作成します。
drush schemadotorg:delete-type
Schema.orgタイプと、オプションで関連するエンティティとフィールドを削除します。
drush schemadotorg:update-schema
CSVファイルから再インポートしてSchema.orgデータを更新します。schemadotorg_typesとschemadotorg_propertiesデータベーステーブルを更新します。
drush schemadotorg:download-schema
schema.orgから最新のSchema.org CSVデータをダウンロードします。バンドルされたデータファイルを更新するためのメンテナーコマンドです。
drush schemadotorg:translate-schema
ローカライゼーション用にSchema.org CSVデータから翻訳可能な文字列を抽出します。メンテナーコマンドです。
Troubleshooting 5
Schema.orgはDrupalのフィールド名の32文字制限を超える可能性のある長いプロパティ名を使用します。/admin/config/schemadotorg/settings/namesで省略形、プレフィックス、サフィックスを設定して名前の短縮方法を制御します。特定の問題のあるプロパティにcustom_namesマッピングを追加します。
モジュールは推奨される統合をチェックします。推奨モジュール(Duration Field、Entity Browser、Focal Point、Linkit)をインストールするか、/admin/config/schemadotorg/settings/generalで「推奨モジュールをチェック」のチェックを外してチェックを無効にします。
Schema.orgエンティティ参照選択を使用する場合、ターゲットバンドルにSchema.orgマッピングがあることを確認してください。選択ハンドラーはSchema.orgタイプでフィルタリングするため、マッピングされていないバンドルは表示されません。プロパティのrangeIncludesを確認し、目的のタイプのマッピングを作成してください。
/admin/config/schemadotorg/settings/propertiesの無視されるプロパティリストにプロパティが含まれているか確認してください。一部の技術的または稀にしか使用されないプロパティはUIを簡素化するためにデフォルトで非表示になっています。必要に応じて無視リストから削除してください。
形式が正しいことを確認してください: entity_type:SchemaType(例: node:Article)。Schema.orgタイプはschema.orgの有効なタイプである必要があります。既存のマッピングがリクエストされたタイプと競合していないか確認してください。
Security Notes 4
- 'administer schemadotorg'権限はエンティティタイプとフィールドの作成を許可するため強力であり、信頼できる管理者にのみ付与すべき
- JSON-LD出力を使用する場合、構造化データは公開されるため機密情報を含めないよう注意
- Schema.orgタイプによるエンティティ参照選択はエンティティアクセス制御を尊重しますが、適切な表示権限が設定されていることを確認
- JSON:API統合はJSON:APIモジュールのアクセス制御に従います - ユースケースに応じてリソースアクセスを適切に設定