WordPress5.5からテンプレートにパラメータ(引数)で変数を渡せるようになりました。
ロード元のテンプレートからロード先のテンプレートにデータを引き継ぐことができます。
『テンプレートファイルを読み込むとき変数値の引き継ぎできなかったっけ?』と思うくらい、これまであってもおかしくなかった機能の追加です。
(そっか、自分で作ったの忘れていた。)
これで、メインのテンプレート(index.php)からヘッダーやフッターのテンプレート(header.php, footer.php)に変数値を渡すようなことができます。
関数 | テンプレート |
---|---|
get_header() | header.php |
get_footer() | footer.php |
get_sidebar() | sidebar.php |
get_template_part() | 任意のテンプレート |
WordPress.orgリファレンス
使い方も簡単です。テンプレート読み込み関数の一番最後のパラメータに変数を指定するだけ。
ここでは、メインテンプレートのindex.phpからヘッダーのheader.phpへ変数値を渡してみます。
index.php
<?php
$args = [
'test' => 'test-value',
];
// get_header();
get_header( null, $args );
?>
header.php
<?php echo $args['test']; ?>
やることはこれだけ。
パラメータを渡すとき、テンプレート読み込み関数のその他のパラメータは省略できないので、初期値を指定しましょう。
パラメータを渡さないのであれば修正はいりません。
大事なこと忘れてました。引き取るパラメータの変数名は '$args' です。変数名までは渡せないので気をつけましょう。
複数のパラメータを渡したければ、$argsを配列や連想配列にすればOK。