web-dev-qa-db-ja.com

テンプレートへの変数の受け渡し(グローバル化変数の代替)

私は自分のWPコードをもっと単純にしたい(header.php、page.phpなどに混乱がある)。だから、たとえば、私はこのグローバルのようなものを設定したいです。

$foo = get_option('foo');  

それで$fooはpage.php、header.php、footer.php、loop.phpのどこでも、そしてfunctions.php(require_once)にリンクされた異なるテーマファイル内でも正しく使われるでしょう。

私はすでにこれを達成するための2つの方法を知っています、両方ともfunctions.phpを編集する必要があります。

グローバルダイナミック機能

function foo() {
   return 'bar';
}

グローバル定数

define('FOO_BAR', 'directory');    

1つの変数に対して複数の場所で関数を起動する必要が本当にありますか?やり過ぎではありませんか。

2
Wordpressor

この関数を使うこともできます:

set_query_var('foo', $foo);

WPはそれがロードするすべてのテンプレートですべてのクエリ変数を抽出して公開するので、あなたは$fooとしてそれにアクセスすることができるでしょう。

9
onetrickpony