Cómo consultar múltiples categorías en WordPress

6 oct 2014, 12:44:04
Vistas: 14.9K
Votos: 2

Estoy intentando consultar múltiples categorías en WordPress pero sin éxito, no veo nada malo en mi código.

A continuación mi código:

query_posts('posts_per_page=1&cat=5,1');

  while ($wp_query->have_posts()) : $wp_query->the_post(); 

  get_template_part('loop', 'single-home');

endwhile;
1
Comentarios

El problema con esta pregunta es que no aclaras si quieres publicaciones en cualquiera de las categorías o que deben estar en ambas categorías.

Nora McDougall-Collins Nora McDougall-Collins
5 jul 2023 22:28:10
Todas las respuestas a la pregunta 2
2

Usar de esta manera

query_posts( array( 'category__in' => array(5,1), 'posts_per_page' => 1, 'orderby' => 'title', 'order' => 'ASC' ) );

o

$my_query = new WP_query(array('category__and' => array(5,1))); 
while ($my_query->have_posts()) : $my_query->the_post(); 
6 oct 2014 12:50:53
Comentarios

está bien, el primero está funcionando

Jono Jono
6 oct 2014 13:10:03

si mi respuesta te ayudó, por favor acéptala como la solución haciendo clic en el símbolo de check

Zammuuz Zammuuz
6 oct 2014 13:13:27
1

En primer lugar, nunca uses query_posts

Nota: Esta función no está destinada a ser utilizada por plugins o temas. Como se explica más adelante, existen opciones mejores y con mayor rendimiento para alterar la consulta principal. query_posts() es una forma demasiado simplista y problemática de modificar la consulta principal de una página reemplazándola con una nueva instancia de la consulta. Es ineficiente (vuelve a ejecutar consultas SQL) y fallará por completo en algunas circunstancias (especialmente al tratar con la paginación de entradas).

Deberías usar WP_Query para crear consultas personalizadas

En segundo lugar, tu problema es el parámetro posts_per_page. Este está configurado en 1. Lo que esto significa es que se recuperará una entrada que vendrá de la categoría 1 o 5, dependiendo de cuál entrada sea la más reciente entre las dos categorías. Tienes que aumentar 1 para recuperar más entradas, o establecer 1 en -1 para recuperar todas las entradas de estas dos categorías.

También puedes eliminar el parámetro posts_per_page y reemplazarlo con nopaging=true para recuperar todas las entradas.

6 oct 2014 13:15:40
Comentarios

Esta debería ser la respuesta aceptada, en mi opinión. Evita usar query_posts.

Olivier Olivier
13 ene 2023 17:13:03