¿Cómo hacer que get_template_part siempre verifique primero el tema hijo?
¿Cómo puedo forzar a WordPress para que siempre verifique primero la carpeta del tema hijo cuando ejecuta get_template_part
?
Ejemplo: el tema hijo carga get_template_part('content', 'inventory')
en single.php
. Dado que todos los temas hijos (y hay muchos) comparten la misma plantilla base de inventario común, el archivo content-inventory.php
está en el tema padre. Todo bien hasta aquí.
Me gustaría agregar una pequeña sección a dicha plantilla de inventario que será única para cada tema hijo. Al agregar get_template_part('content', 'inventory-special')
en content-inventory.php
no verificará primero el directorio del tema hijo.

Lo hace por defecto. La función get_template_part()
utiliza locate_template()
que recorre en cascada los archivos de plantilla en orden de especificidad y la ruta de la hoja de estilos/plantilla.
Así que, si tu Tema Hijo incluye un archivo content-inventory.php
, entonces get_template_part()
lo incluirá; si no, buscará content-inventory.php
en el Tema Padre. Si no lo encuentra, buscará content.php
primero en el hijo y luego en el padre.
EDITADO:
Intentando entender lo que quieres decir; por favor aclara si estoy malinterpretando...
¿Quieres incluir un nuevo archivo de parte de plantilla dentro de un archivo de plantilla del Tema Padre llamado content-inventory.php
, correcto?
La única manera, que yo sepa, de hacerlo es copiar content-inventory.php
en tu Tema Hijo, y luego añadir la nueva llamada get_template_part()
donde sea necesario.
Si un archivo llamado content-inventory.php
está incluido tanto en el Tema Padre como en el Hijo, WordPress siempre usará la versión del Tema Hijo, si se incluye usando get_template_part()
.

@Kaiser, @Chip Bennett: WP obviamente verificará el tema padre en busca de content-inventory.php
. El Codex y la experiencia simple lo dejan claro. Sin embargo, si el archivo buscado (nivel 2) está en la carpeta del tema padre, WP no vuelve a verificar el tema hijo para un get_template_part
contenido dentro del archivo buscado (una inclusión de tercer nivel). ¿Esto ha funcionado de manera diferente para ustedes?

get_template_part()
hace esto por defecto.
