wordpress - theme - locate_template
WordPress: guarde `get_template_part()` en la variable (3)
En resumen, todo lo que necesito es hacer que mi WordPress haga esto
$var = get_template_part( ''loop'', ''index'' );
pero, get_template_part()
no devuelve HTML, lo imprime.
Necesito este HTML almacenado en $var
. ¿Tiene alguna idea de cómo hacerlo?
¡No me gusta el buffer de salida, aunque +1 por pensar en eso como una opción!
Creo que Helga estaba trabajando en algo, pero aún debes respetar el tema child_themes y la ruta del tema, así que utiliza locate_template () en su lugar (también como sugirió Simon).
Esto funciona muy bien, e incluso se puede utilizar dentro de un filtro o (en mi caso) función de código breve (quería que mi código corto produjera el contenido dentro de un archivo de estilo de plantilla, para separar la capa de visualización de la capa lógica).
return file_get_contents(locate_template("template-file-name.php")); // don''t forget the .php!
¿qué pasa?
$file = file_get_contents(STYLESHEETPATH . ''/template-part.php'');
return $file;
Estoy seguro de que hay una mejor manera, pero eso parece funcionar para mí.
Esto no es para lo que fue get_template_part
, get_template_part esencialmente se comporta como la función de requerimiento de PHP. Justin Tadlock escribe mucho más sobre esto aquí y también habla sobre una función de Wordpress que podría ser más útil para ti: locate_template
.
Alternativamente, si desea hackear esta funcionalidad usando get_template_part, puede usar el buffering de plantillas:
function load_template_part($template_name, $part_name=null) {
ob_start();
get_template_part($template_name, $part_name);
$var = ob_get_contents();
ob_end_clean();
return $var;
}