get_template_part() no funciona si lo llamas desde una subcarpeta
Por ejemplo, si tienes un directorio como este:
theme
- subfolder
- template.php
content-job-listing.php
Si intento llamar a get_template_part así get_template_part('content', 'job-listing') desde el archivo template.php (ten en cuenta que este es solo un nombre genérico, no el nombre real que estoy usando) devuelve NULL.
De manera similar, si uso get_template_part('../content', 'job-listing') esto también falla al devolver la plantilla. Sin embargo, la primera forma funciona bien si ambos están en el mismo directorio.
get_template_part() no funciona si lo llamas cuando estás en una subcarpeta
get_template_part() funcionará igual sin importar dónde o qué tan profundo estés dentro de tu tema. Siempre incluye archivos relativos a la raíz del tema (o tema hijo).
Así que si llamas lo siguiente desde cualquier lugar:
get_template_part( 'content', 'job-listing' );
... intentará cargar (en orden):
child-theme/content-job-listing.phpparent-theme/content-job-listing.phpchild-theme/content.phpparent-theme/content.php
Para cargar partes que están en un subdirectorio de tu tema, simplemente usa la ruta en el primer argumento:
get_template_part( 'path/to/file', 'optional-slug' );
Correcto. Esto es genial, el principal problema es encontrar cuál de esos archivos se usará en tal o cual caso. Por ejemplo, el índice cargará el content.php incluso si piensas que debería ser la versión de extracto... Así que en algunas situaciones, puede resultar confuso.
Alexis Wilke