¿Cómo hacer que get_template_part siempre verifique primero el tema hijo?

19 jun 2011, 15:55:34
Vistas: 21.2K
Votos: 9

¿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.

1
Comentarios

A los dos que dieron votos negativos a mi respuesta y no comentaron el porqué, gracias por nada. ¿Cómo se supone que alguien puede mejorar con críticas negativas?

MTT MTT
19 jun 2011 23:24:06
Todas las respuestas a la pregunta 2
2

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().

19 jun 2011 16:47:28
Comentarios

@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?

MTT MTT
19 jun 2011 23:17:26

No entiendo tu pregunta/problema. Para cualquier nombre de archivo de plantilla dado, WordPress siempre verifica primero el Tema Hijo. ¿Puedes explicar a qué te refieres con archivos de segundo y tercer nivel?

Chip Bennett Chip Bennett
19 jun 2011 23:37:31
0

get_template_part() hace esto por defecto.

19 jun 2011 16:46:41