🪡
WordPress の get_template_part を使うときは無名関数が便利
TL;DR
get_template_part から呼び出されるコードは無名関数に包んでおくと安全でいい
<?php
(function ($post) {
?>
己のWordPressを磨け
<?php
})($args['post']);
解説
get_template_part で呼び出されるコードは、PHP的にはグローバルスコープで実行されます。
したがって $post
などのWordPressが用いる変数名と被った命名をすると、上書きされてしまいます。
呼び出し元が関数の内部であっても関係ありません。(私は呼び出し元が関数スコープ内なら呼び出し先も同じスコープになると誤解していました)
しかし get_template_part から呼び出されるコードはファイルも分かれていますし、関心分離の観点からもカプセル化するべきです。
上記スニペットのように無名関数に包むようにしておくと、うっかりglobal汚染してしまうような事故を防ぐことができます。
また、副次的な作用として、 argsをどのように使っているかが明確になるのもよさそうです。
Discussion