私は v4.7で追加されたテーマ位置 を参照するための新しい関数について読んでいます。
tracチケット を読みます。私は彼らがなぜこれらの関数を作ったのか、そして子供のテーマで使うためのget_theme_file_path()
の恩恵を理解しています。しかし、口頭での明確さとは別に、親テーマのファイルを参照するときにget_parent_theme_file_path()
よりget_template_directory()
を使う特別な理由がありますか?
Get_template_directory()よりもget_parent_theme_file_path()を使用する特別な理由はありますか
はい。この新機能にはフィルターが付いています
get_parent_theme_file_path() sourceを見ると、ファイルがget_parent_theme_file_path
への引数として与えられ、ファイルへのパスを返し、parent_theme_file_path
フィルタも含まれているように、get_template_directory()
が追加機能付きで返されるだけです。上書きしてもいいです。
get_parent_theme_file_path
は、一貫性を保ち、子テーマを簡単に上書きできるようにするために導入されました。 get_template_directory
の代わりにこれを使用しないという意味はありません。
私はこれらの関数について post を書きました。
ユースケース:
次のようにget_template_directory
を使用してテーマにファイルを含めるとします。
include(get_template_directory().'/inc/bk.php'); /*../themes/bk-theme/inc/bk.php */
子テーマでbk.php
をオーバーライドしたい場合は、 可能ではありません
新しい機能で同じファイルをインクルードした場合
include(get_parent_theme_file_path('inc/bk.php')); /*../bk-theme/inc/bk.php */
次のようにparent_theme_file_path
を使用すると、このテーマを子テーマに簡単に上書きできます。
add_filter('parent_theme_file_path','bk_257597_parent_theme_file',10,2);
function bk_257597_parent_theme_file($path,$file){
if('inc/bk.php' == $file) {
//do something
$file = 'my-file';
$path = 'my-path'.$file;
}
return $path;
}