¿Hay alguna razón específica para usar get_parent_theme_file_path () sobre
get_template_directory ()
Sí. Esta nueva función viene con un filtro
- filtro parent_theme_file_path
- Y el argumento de la ruta del archivo
Si echas un vistazo a la fuente get_parent_theme_file_path () , solo está devolviendo get_template_directory()
con una funcionalidad adicional, como si un archivo se presenta como un argumento para el get_parent_theme_file_path
, devuelve la ruta al archivo y también viene el filtro parent_theme_file_path
, que es muy bueno anular.
get_parent_theme_file_path
se introduce por coherencia y para permitir que los temas secundarios se anulen fácilmente. No veo ningún punto para no usar esto en lugar de get_template_directory
.
Escribí una publicación sobre estas funciones, que puede ser de ayuda.
Caso de uso:
Supongamos que está incluyendo un archivo en el tema utilizando get_template_directory
como el siguiente.
include(get_template_directory().'/inc/bk.php'); /*../themes/bk-theme/inc/bk.php */
y si desea reemplazar bk.php
en el tema secundario, no es posible
Si incluye el mismo archivo con la nueva función
include(get_parent_theme_file_path('inc/bk.php')); /*../bk-theme/inc/bk.php */
Puede anular fácilmente la inclusión de este archivo en el tema secundario utilizando parent_theme_file_path
como el siguiente
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;
}