web-dev-qa-db-ja.com

Get_template_partで変数を渡す方法

私はカスタムテーマを開発しています、そして私は選択されたファイルにいくつかの変数を渡すのが好きです。 functions.phpからビューファイルを呼び出しています。

$var1 = ;
$var2 = ;
etc
include_once('form-views/view-profile.php');//works

//get_template_part('includes/form-views/view','profile');//doesn't work

今ではそれは動作します

2
alex

これは本質的にスコープの可視性の問題です。 includeはコードを現在のスコープに入れ、関数呼び出しは新しいクローズドスコープを作成します。 get_template_part()では、特定のWordPressグローバルだけが load_template() call insideによって利用可能にされています。

基本的な答えはあなたの変数をグローバルとして宣言することですが、あなたはあなたの全体的なアーキテクチャを少し考えた方が良いかもしれません - これは典型的にコードの良いサインではありません。

1
Rarst

これらの場合、私は通常使用します:

include(locate_template('includes/form-views/view-profile'));

このようにして、子テーマはファイルをオーバーライドできます。

1
giraff