WordPress5.5からテンプレートファイルの引数に変数を渡せるようになった。

公開:2020/09/20
更新:2020/09/22
1 min読了の目安(約1100字TECH技術記事

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の公式

まとめ

WordPress5.5からテンプレートにも引数を渡せるようになり、今までグローバル変数、関数で作成していたコンポーネントをテンプレート化できるようになりました。

共通パーツはどんどんコンポーネント化する事で保守性が高まります!