come interrogare più categorie in WordPress?
Sto cercando di interrogare più categorie in WordPress ma senza successo, non vedo nulla di sbagliato nel mio codice.
Ecco il mio codice qui sotto:
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;

Utilizza in questo modo
query_posts( array( 'category__in' => array(5,1), 'posts_per_page' => 1, 'orderby' => 'title', 'order' => 'ASC' ) );
oppure
$my_query = new WP_query(array('category__and' => array(5,1)));
while ($my_query->have_posts()) : $my_query->the_post();

Prima di tutto, non utilizzare mai query_posts
Nota: Questa funzione non è pensata per essere utilizzata da plugin o temi. Come spiegato in seguito, ci sono opzioni migliori e più performanti per modificare la query principale. query_posts() è un modo eccessivamente semplicistico e problematico per modificare la query principale di una pagina sostituendola con una nuova istanza della query. È inefficiente (ri-esegue le query SQL) e fallirà completamente in alcune circostanze (specialmente spesso quando si ha a che fare con l'impaginazione dei post).
Dovresti invece utilizzare WP_Query
per creare query personalizzate
In secondo luogo, il tuo problema è il parametro posts_per_page
. Questo è impostato a 1
. Ciò significa che verrà recuperato un post che proverrà dalla categoria 1 o 5, a seconda di quale post sia il più recente tra le due categorie. Devi aumentare 1
per recuperare più post, imposta 1
a -1
per recuperare tutti i post da queste due categorie.
Puoi anche rimuovere il parametro posts_per_page
e sostituirlo con nopaging=true
per recuperare tutti i post.
