Drupal 8からテンプレートエンジンがtwigに変更になりましたので、デザインテーマの作成方法も大きく変わりました。
細かい点ですが「node.html.twig」内で投稿日時を任意のフォーマットに変更する際のメモです。
一番シンプルな方法としては、テンプレート内でフォーマットを指定することができます。
node.html.twig
1
| <time class="created">{{ createdtime|date('Y.m.d') }}</time> |
<time class="created">{{ createdtime|date('Y.m.d') }}</time>
「createdtime」はタイムスタンプですので、「|」を挟んでフォーマットを指定します。
Drupalでは環境設定に日時のフォーマットを登録していて、デフォルトでは「long」「medium」「short」の3種類があります。
この登録済みのフォーマットを指定する場合には「template_preprocess_node」に変数を用意します。
THEMENAME.theme(THEMENAMEは実際のテーマ名になります)
1
2
3
| function THEMENAME_preprocess_node(&$variables) {
$variables['created'] = format_date($variables['node']->getCreatedTime(), 'medium');
} |
function THEMENAME_preprocess_node(&$variables) {
$variables['created'] = format_date($variables['node']->getCreatedTime(), 'medium');
}
「created」という変数(名称は任意で)を設けて、その中に日時のフォーマットを指定した値をいれます。
テンプレート内では次のように記述します。
1
| <time class="created">{{ created }}</time> |
<time class="created">{{ created }}</time>
後者の方法で日時を指定したほうが、メンテナンス性は高いと思います。
|