web-dev-qa-db-ja.com

Get_template_partが常に子テーマを最初にチェックするようにするにはどうすればいいですか?

get_template_partを実行するときにWPに常に最初に子テーマフォルダをチェックさせるにはどうすればよいですか?

例:childテーマはsingle.phpget_template_part('content', 'inventory')をロードします。すべての子テーマは(そしてたくさんありますが)同じ共通インベントリテンプレートベースを共有しているので、ファイルcontent-inventory.phpは親テーマにあります。ここまでは順調ですね。

私はそれぞれの子供のテーマに固有のものになる、上記の在庫テンプレートに小さなセクションを追加したいと思います。 content-inventory.phpget_template_part('content', 'inventory-special')を追加しても、子テーマのディレクトリが最初に確認されることはありません。

6
torinagrippa

デフォルトではあります。 get_template_part()関数は、locate_template()を使用して、具体性とstylesheetpath/templatepathの順にテンプレートファイルをカスケードします。

ですから、あなたの子供のテーマがcontent-inventory.phpを含んでいれば、get_template_part()がそれを含みます。そうでなければ、それは親のテーマでcontent-inventory.phpを探します。見つからない場合は、最初に子、次に親でcontent.phpを検索します。

編集:

あなたが何を意味するのか理解するために突き刺すこと。私が誤解しているかどうかを明確にしてください...

新しいテンプレートパーツファイルをcontent-inventory.phpという名前のParent-Themeテンプレートファイルに含めますか?

あなたがそれをすることができるという唯一の方法は、content-inventory.phpをあなたの子テーマ にコピーして、それから必要なところに新しいget_template_part()呼び出しを追加することです。

content-inventory.phpという名前のファイルが both Parent および Childテーマに含まれている場合、WordPressは 常に 含まれる場合は Childテーマ バージョンを使用します。 get_template_part()を使います。

5
Chip Bennett

get_template_part() はデフォルトでこれを行います。

3
kaiser