Me gustaría consultar solo páginas con una determinada plantilla de página WP_Query
o una función que devolvería el objeto de publicación, pero no puedo encontrar ninguna información al respecto en el códice oficial.
14
Pruebe esto ... Suponiendo que el nombre de la plantilla es 'my_template.php',
$query = new WP_Query(
array(
'post_type' => 'page',
'meta_key' => '_wp_page_template',
'meta_value' => 'my_template.php'
)
);
//Down goes the loop...
También puede usar get_posts o modificar publicaciones de consultas para realizar el trabajo. Ambas funciones usan los mismos parámetros que WP_Query .
Incorrecto: a partir de wordpress 3 necesitas algo parecido a:
$args = array(
'post_type' => 'page',
'meta_query' => array(
array(
'key' => '_wp_page_template',
'value' => 'my_template.php'
)
)
);
post_type
. De lo contrario, no necesita lameta_query
matriz para un solo par clave / valor personalizado.meta_key
ymeta_value
o con una matriz simple, que podría incluir varias condiciones.La plantilla de página se almacena como un metavalor con la clave "_wp_page_template".
Entonces, todo lo que necesita es usar esa clave en un parámetro de meta consulta. Por ejemplo
Ver http://codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query#Query_based_on_Custom_Field_and_Sorted_by_Value
y http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters
fuente
Si el intento de alguien resulta incorrectamente en cero publicaciones, probablemente el nombre de la plantilla sea incorrecto. Probé el nombre del archivo php y el nombre de mi plantilla y no funcionaron. Luego decidí inspeccionar el cuadro de selección de plantillas donde seleccionamos la plantilla en el editor de páginas. Encontré esto:
Solía
templates-map/component-tutorial-1.php
y funcionó.fuente
Si tiene la plantilla dentro de otra carpeta:
fuente