私はカスタムテーマを開発しています、そして私は選択されたファイルにいくつかの変数を渡すのが好きです。 functions.phpからビューファイルを呼び出しています。
$var1 = ;
$var2 = ;
etc
include_once('form-views/view-profile.php');//works
//get_template_part('includes/form-views/view','profile');//doesn't work
今ではそれは動作します
これは本質的にスコープの可視性の問題です。 include
はコードを現在のスコープに入れ、関数呼び出しは新しいクローズドスコープを作成します。 get_template_part()
では、特定のWordPressグローバルだけが load_template()
call insideによって利用可能にされています。
基本的な答えはあなたの変数をグローバルとして宣言することですが、あなたはあなたの全体的なアーキテクチャを少し考えた方が良いかもしれません - これは典型的にコードの良いサインではありません。
これらの場合、私は通常使用します:
include(locate_template('includes/form-views/view-profile'));
このようにして、子テーマはファイルをオーバーライドできます。