Drupal9テーマ作成ガイド
ここでは Drupal9 のテーマ作成方法について説明します。テーマのフォルダ構造からファイル構成まで、この連載を読むと Drupal9 における正しいテーマの作成方法を学ぶことができます。

Twigテンプレートで使用可能な関数
Twigには、テンプレート内で直接使用できる便利な関数が、たくさんあります。Drupalコアには、Drupal特有のカスタム関数がいくつか追加されています。この関数は、TwigExtensionクラスで定義されています。独自のカスタムTwig関数をカスタムモジュールで定義することもできます。

Twigテンプレートのマクロ
最終更新日 2020年2月13日
Twig 公式ドキュメントより:
「マクロは一般のプログラミング言語の関数と似ています。頻繁に使用される HTML 構文を再利用可能な要素として設定するのに便利です。」
{% macro input(name, value, type, size) %}
<input type="{{ type|default('text') }}" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(20) }}" />
{% endmacro %}
マクロはネイティブの PHP 関数といくつか異なる点があります:

Twig テンプレートの変数のデバッグ
Twig テンプレートファイルを操作する場合、利用可能な変数はテンプレートファイルのコメントに記載されます。しかし、記載されていなかったり、テーマやモジュールで、別途変数定義されている場合、テンプレート内で利用可能な変数を検出する必要があります。Twig では、dump() 関数を使って、テンプレートファイルで利用可能な変数を検出できます。

Drupal のテーマにスタイルシート(CSS)とJavaScript(JS)を追加する
今回はDrupal8のテーマにjsとcssを追加する方法についての記事です。Drupalでのテーマ作成には必須の知識です。

Drupal のテーマにリージョンを追加する
今回は Drupal のテーマにリージョンを追加する方法について説明します。リージョンを追加することで、リージョン内にブロックを配置可能になります。

Drupal のテーマを .info.ymlファイルで定義する
Drupal のテーマを作成するには、最初に テーマに関するメタデータを Drupal に設定するファイル(THEMENAME.info.yml)作成する必要があります。これは、モジュールとインストレーションプロファイルを定義する方法に似ています。そのため、.info.yml ファイルの 'type' キーを 'theme' と設定してこれらと区別することが重要です。このページでは、THEMENAME.info.yml のサンプルファイルと、ファイルに定義することができる情報について説明します。

Drupal テーマのフォルダ構造
基本的な Drupal の操作方法を学んだ後、実際に開発をする際にまず最初に突き当たる壁がテーマ(Theme)の作成方法です。ここでは、Drupal のテーマ作成の基本となるテーマフォルダの構造を説明します。