🥰
WordPress5.5からテンプレートファイルの引数に変数を渡せるようになった。
5.5未満ではget_template_part()などに変数を渡したい場合はグローバル変数に切り出して参照するか、関数でラップしてやる必要がありました。
しかし、WordPress5.5から正式にテンプレートファイルの引数に配列を渡せるようになりました🎉
配列を受け取る側では$argsにアクセスすると渡した変数を使用する事が可能になります!
引数に変数を渡せるようになった関数
get_header()
get_footer()
get_sidebar()
get_template_part()
locate_template()
load_template()
Example
<!-- foo.phpをインクルードし第三引数に変数を投げる -->
<?php get_template_part('foo', null, array(
'class' => 'user',
'arbitrary_data' => array(
'foo' => 'baz',
'bar' => true,
),
)
);
<?php
// Example foo.php template.
// Set defaults.
// wp_parse_argsのarray初期値を設定する
$args = wp_parse_args(
$args,
array(
'class' => '',
'arbitrary_data' => array(
'foo' => 'fooval',
'bar' => false,
),
)
);
?>
<div class="widget <?php echo esc_html_class( $args['class'] ); ?>">
<?php echo esc_html( $args['arbitrary_data']['foo'] ); ?>
</div>
公式
まとめ
WordPress5.5からテンプレートにも引数を渡せるようになり、今までグローバル変数、関数で作成していたコンポーネントをテンプレート化できるようになりました。
共通パーツはどんどんコンポーネント化する事で保守性が高まります!
Discussion