これはいくつかの方法で行うことができます。Twigを使用してすべてをノードテンプレートで実行するか、前処理関数を作成してノードテンプレートで使用する変数を作成します。配列の内容を知るための鍵は、Devel Kintを使用することです。それがないと、配列の内容がわかりません。
まず、Drupal 8のDevelモジュールに付属しているKintをインストールします。次に、ノードテンプレートを選択し(ただし、これはあらゆる種類のテンプレートで実行できます)、コンテンツ変数を確認します(テンプレートの下部が理想的です)。
{{ kint (content) }}
これにより、ページにデバッグ情報が印刷され、配列を展開すると、多数の情報が表示されます。すぐに、背景の値が表示されます。これを印刷するためのパスを作成できます。
{{ content.field_background[0]['#markup'] }}
これを背景スタイルまたはdivのクラスとして印刷できます
<div style="background-color: {{ '#' }}{{ content.field_background[0]['#markup'] }};" class="color-{{ content.field_background[0]['#markup'] }}">
<h2>Hello</h2>
</div>
私はこれをテストしましたが、うまく機能します。divは、ノード編集時にフィールドリストで選択した背景色をレンダリングしました。
これは理想的ではないので、おそらくテーマの.themeファイルのpreprocess_nodeにこのための変数を作成する必要があります。
function MYTHEME_preprocess_node(&$vars) {
$vars['bgcolor'] = '#' . $vars['content']['field_background'][0]['#markup'];
}
これでvarが作成されたので、これを出力する方がずっと簡単です。
<div style="background-color: {{ bgcolor }};" >
<h2>Hello</h2>
</div>
上記の注意点の1つとして、これをifステートメントでラップして、空かどうかを確認する必要があります。
これは機能するか、ifステートメントを好きな場所に構成します
{% if bgcolor %}
<div style="background-color: {{ bgcolor }};" >
<h2>Hello</h2>
</div>
{% endif %}
{% set classes = [ ...
、クラスを次のように印刷し<article{{ attributes.addClass(classes) }}>
たり<div{{ content_attributes.addClass('foobar' | clean_class) }}>
、同様に行うことができます。上記のメモにあるように、もっと情報が必要だと思います。クラスとしてフィールド値が必要な場合は、KintおよびTwigデバッグも使用すると便利です。また、前処理関数で変数を設定する必要がある場合がありますが、おそらく必要ではありません。