¿Hay alguna forma de consultar las páginas de WordPress que tienen cierta plantilla? Esto es lo que tengo, pero no muestra nada:
<?php $my_query = new WP_Query(array( 'meta_key' => '_wp_page_template', 'meta_value' => 'template-city.php' )); ?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<li>
<?php the_title(); ?>
</li>
<?php endwhile; ?>
Por supuesto, hay un archivo de plantilla de página llamado template-city.php
enero
si post_type
se deja fuera, WP buscará la publicación y usted está buscando páginas.
<?php
$args = array(
'post_type' => 'page',//it is a Page right?
'post_status' => 'publish',
'meta_query' => array(
array(
'key' => '_wp_page_template',
'value' => 'template-city.php', // template name as stored in the dB
)
)
);
$my_query = new WP_Query($args)
?>
-
Solo un punto de recordatorio para las personas que ven esto: sí, es necesario tener
meta_key
El valor de ser una matriz dentro de una matriz para que esto funcione.– Muhammad Abdul Rahim
21/10/2015 a las 21:51
-
En caso de que esto no funcione para usted, asegúrese de que el
value
la ruta es correcta, específicamente si su archivo de plantilla está en una carpeta. en mi caso elvalue
necesitaba serpage-templates/template-name.php
– mmshr
10 de abril de 2019 a las 15:04
-
¿Se pueden pasar varios nombres de plantilla a la consulta?
– Sombra
12 sep 2019 a las 18:06
-
@Shadoath sí puedes:
'meta_query' => array(array('key' => '_wp_page_template','value' => ['template-city.php', 'template-other.php'], 'compare' => 'IN'))
ver el documentación oficial para más información– enero
16 de septiembre de 2019 a las 8:52
-
Simplemente no olvide agregar ‘posts_per_page’ => -1 , o obtendrá solo 10 resultados
– Tomo Miha
12 dic 2019 a las 15:20
Um, ¿cómo funcionaría esto? ¿Qué estás intentando lograr?
– SMacFadyen
23 de agosto de 2012 a las 8:20
Hay muchas páginas en el sitio web: continentes, con ciudades para niños, que además tienen alojamiento para niños, o restaurantes para niños, etc. Cada una de estas páginas tiene su propia plantilla de página, por lo que me gustaría mostrar todas las ciudades con la consulta. ¿Espero que esto ayude?
– jOpacic
23 de agosto de 2012 a las 8:24
Parece que necesitas wp_list_pages(), codex.wordpress.org/Function_Reference/wp_list_pages
– SMacFadyen
23 de agosto de 2012 a las 8:33
Sí, pero ¿qué pasa si quiero usar la miniatura de las páginas? No quiero mostrar solo los nombres de las ciudades en una lista, me gustaría tener acceso a todas las cosas en una página, como la miniatura, por ejemplo.
– jOpacic
23 de agosto de 2012 a las 11:10