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

8

¿Cómo puedo forzar a WP a verificar siempre la carpeta del tema secundario primero cuando se ejecuta get_template_part?

Ejemplo: cargas temáticos niño get_template_part('content', 'inventory')en single.php. Debido a que todos los temas secundarios (y hay muchos) comparten la misma base de plantilla de inventario común, el archivo content-inventory.phpestá en el tema principal. Hasta aquí todo bien.

Me gustaría agregar una pequeña sección a dicha plantilla de inventario que será única para cada tema secundario. Agregar get_template_part('content', 'inventory-special')en content-inventory.phpno comprobará primero el directorio del tema hijo.

m-torin
fuente
3
A ustedes dos que rechazaron mi respuesta y no comentaron por qué, gracias por nada. ¿Cómo se supone que alguien se mejora con críticas negativas?
m-torin

Respuestas:

5

Lo hace, por defecto. La get_template_part()función utiliza locate_template()qué cascadas a través de los archivos de plantilla en orden de especificidad y estilos sheetpath / templatepath.

Entonces, si su Tema Infantil incluye un content-inventory.php, entonces get_template_part()lo incluirá; si no, entonces buscará content-inventory.phpen el Tema principal. Si no lo encuentra, buscará content.phpprimero en el niño, luego en el padre.

EDITAR:

Intentando entender lo que quieres decir; por favor aclare si estoy malentendido ...

Desea incluir un nuevo archivo de parte de plantilla dentro de un archivo de plantilla de Tema principal llamado content-inventory.php, ¿verdad?

La única forma, AFAIK, de que puedes hacer eso es copiarlo content-inventory.phpen tu Tema Infantil y luego agregar la nueva get_template_part()llamada donde sea necesario.

Si content-inventory.phpse incluye un archivo nombrado tanto en el Tema principal como en el Tema secundario, WordPress siempre usará la versión del Tema secundario, si se incluye get_template_part().

Chip Bennett
fuente
@Kaiser, @Chip Bennett: WP obviamente verificará el tema principal content-inventory.php. El Codex y la experiencia simple lo dejan claro. Sin embargo, si el archivo que se busca (nivel 2) está en la carpeta del tema principal, WP no vuelve a verificar el tema secundario para un get_template_partcontenido dentro del archivo que se busca (una inclusión de tercer nivel). ¿Esto ha funcionado de manera diferente para ti?
m-torin
No entiendo tu pregunta / problema. Para cualquier nombre de archivo de plantilla dada, WordPress siempre comprueba el niño temático primera . ¿Puedes explicar qué quieres decir con archivos de segundo y tercer nivel?
Chip Bennett