Je lisais sur les nouvelles fonctions de référençant l'emplacement du thème ajouté dans v4.7.
J'ai lu le billet trac . Je comprends pourquoi ils ont créé ces fonctions et les avantages de get_theme_file_path()
pour une utilisation dans les thèmes enfants. Outre la clarté verbale, existe-t-il une raison spécifique d'utiliser get_parent_theme_file_path()
sur get_template_directory()
lors de la référence à des fichiers dans le thème parent?
Existe-t-il une raison spécifique d'utiliser get_parent_theme_file_path () sur get_template_directory ()
Oui. Cette nouvelle fonction est fournie avec un filtre
Si vous jetez un coup d’œil à get_parent_theme_file_path () source, il ne fait que renvoyer get_template_directory()
avec des fonctionnalités supplémentaires, comme si un fichier était donné comme argument du get_parent_theme_file_path
, il renvoyait le chemin vers le fichier et il contenait également le filtre parent_theme_file_path
qui est très bon à remplacer.
get_parent_theme_file_path
est introduit pour des raisons de cohérence et pour permettre aux thèmes enfants de remplacer facilement. Je ne vois aucun intérêt à ne pas utiliser ceci à la place de get_template_directory
.
J'ai écrit un post sur ces fonctions, cela peut être utile.
Cas d'utilisation:
Supposons que vous incluez un fichier dans le thème en utilisant get_template_directory
comme ci-dessous.
include(get_template_directory().'/inc/bk.php'); /*../themes/bk-theme/inc/bk.php */
et si vous voulez remplacer bk.php
dans le thème de l'enfant, ce n'est pas possible
Si vous incluez le même fichier avec la nouvelle fonction
include(get_parent_theme_file_path('inc/bk.php')); /*../bk-theme/inc/bk.php */
Vous pouvez facilement remplacer cette inclusion de fichier dans le thème de l’enfant en utilisant parent_theme_file_path
comme suit:
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;
}