get_template_part() no funciona si lo llamas desde una subcarpeta

28 sept 2015, 10:50:10
Vistas: 26.7K
Votos: 4

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

1
Comentarios

posible duplicado de ¿Existe alguna forma de usar get_template_part() con carpetas?

Pieter Goosen Pieter Goosen
28 sept 2015 11:27:21
Todas las respuestas a la pregunta 1
1
11

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):

  1. child-theme/content-job-listing.php
  2. parent-theme/content-job-listing.php
  3. child-theme/content.php
  4. parent-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' );
28 sept 2015 12:15:10
Comentarios

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 Alexis Wilke
12 oct 2018 07:43:21