Vediamo come effettuare query post avanzate per formato in WordPress, utile per prelevare dal database solo un determinato tipo di formato post (video, gallery, quote etc).
Come ben saprete WordPress permette da tempo l’uso di custom format, ovvero formati personalizzati di post. Le tipologie spaziano da post classico, quote, link, immagine, video. Ma come fare a filtrare solamente un determinato tipo di formato nel nostro loop di WordPress? Ecco la (semplice) soluzione.
Filtrare tutti i post format presenti nel database
$args = array( 'showposts' => 2, 'tax_query' => array( array( 'taxonomy' => 'post_format', 'field' => 'slug', 'terms' => 'post-format-image', 'operator' => 'IN' ) ) ); $the_query = query_posts( $args ); while (have_posts()) : the_post(); //Il tuo loop/HTML qui dentro. endwhile;
Ecco l’analisi del codice:
Per il loop usiamo la funzionalità offerta da WordPress query_posts che permette di effettuare una query a partire da alcuni argomenti passabili alla funzione. Per filtrare il formato andiamo ad indicare:
- numero di post da visualizzare -> showposts (nell’esempio 2)
- array tax_query -> sta per taxonomy query
- taxonomy -> indica per quale tipo di post effettuare la query (nel nostro caso post format).
- terms -> recupera solo i post “immagine”, ovviamente potete specificare anche video, quote, link o altro a seconda delle vostre necessità. In questo punto è possibile anche passare un array per il recupero di più tipologie di formati post.
- operator -> potete scegliere fra IN oppure NOT IN. Nel primo caso cerca e filtra il tipo di terms impostato. Nel secondo caso (not in) esclude quel determinato formato post dalla ricerca.
Filtrare tutti i post format in una determinata categoria
Per filtrare i post forma di una determinata categoria aggiungiamo il parametro cat all’array degli argomenti della query. In questo modo:
$args = array( 'showposts' => 2, 'cat' => 12, //12 è l'id della categoria da filtrare 'tax_query' => array( array( 'taxonomy' => 'post_format', 'field' => 'slug', 'terms' => 'post-format-image', 'operator' => 'IN' ) ) ); $the_query = query_posts( $args ); while (have_posts()) : the_post(); //Il tuo loop qui dentro. endwhile;
Conclusioni
[button link=”http://www.targetweb.it/trucchi-hacks-snippets-wp/” color=”blue” target=”blank” size=”large”]Trucchi WordPress[/button] [button link=”http://www.targetweb.it/wordpress/” color=”blue” target=”blank” size=”large”]Guida WordPress[/button]
Un articolo che può essere utilissimo per creare la vostra struttura loop personalizzata in WordPress, se ti è stato utile condividilo sui tuoi socials preferiti!