Interrogazione per formato postale
tax_query
argomento per WP_Query
. Per interrogare tutti i post con il formato preventivo, creeremmo il nostro WP_Query
come questo:$ args = array ('post_type' => 'post', 'tax_query' => array (array ('taxonomy' => 'post_format', 'field' => 'slug', 'terms' => 'post-formato -citazione', ) ) ); $ query = new WP_Query ($ args);
Nota che nell'esempio sopra, il termine è preceduto da "post-formato-". Inoltre, tieni presente che possiamo passare una serie di termini all'argomento termini in tax_query
per poter eseguire query in più di un formato.
Se hai molti post sul tuo sito in alcuni formati di post, probabilmente vuoi evidenziare ogni formato. Ad esempio, se sei un artista visivo che utilizza il tuo blog per mostrare i tuoi video e le tue immagini e utilizza i formati dei post, puoi creare un menu con i tuoi post del formato video e immagine separatamente.
Il primo passo è impostare un array di argomenti per WP_Query
, proprio come quello che ti ho mostrato sopra, tranne questa volta senza il formato di post specifico specificato nell'argomento "termini" del file tax_query
e una serie di formati, insieme alle etichette da usare nel menu di output.
Ecco come appaiono questi due array:
// initial WP_Query args $ args = array ('post_type' => 'post', 'posts_per_page' => 5, 'tax_query' => array (array ('taxonomy' => 'post_format', 'campo' => ' slug ',))); // formati per mostrare $ formats = array (array ('name' => 'video', 'label' => 'Videos'), array ('name' => 'image', 'label' => 'Foto' ),);
Con questi due array, possiamo creare un per ciascuno
loop out del secondo array, per cercare post con il formato corrente e generare un elenco di post. Ciò comporterà, in ogni iterazione del ciclo, l'aggiunta dell'argomento dei termini usando impostato()
, creando un'istanza di WP_Query
, passandoci sopra e poi disattivando l'argomento termini.
All'interno del WP_Query
ciclo while che possiamo usare get_term_link ()
per creare un collegamento alla pagina di archivio del formato del post, che in realtà è un archivio di termini di tassonomia. Per i singoli post, possiamo usare get_permalink ()
per creare il link al post. Ecco come appare il loop:
eco '';
Assicurati di aggiungere classi o ID aggiuntivi al markup per rendere questo codice generico simile a un menu nel tuo tema e sentiti libero di sostituire i formati che vengono mostrati in base alle tue esigenze.
Ora che hai un menu per i tuoi formati di post, potresti voler escludere post di determinati formati dall'indice del tuo blog principale. Ciò ti consentirà di utilizzare il tuo blog come blog e il menu di formattazione dei post per evidenziare video, immagini, file audio o altri post formattati.
Per mantenere i post di un formato specifico, dovrai utilizzare a pre_get_post
filtro per aggiungere a tax_query
alla domanda principale. Il tax_query
sarà simile a quelli che ti ho già mostrato, ma avrà un argomento in più per escludere i post con il formato, usando l'argomento "operator". Impostando l'operatore su "NOT IN", verranno esclusi tutti i post corrispondenti.
Questa query verrà inoltre inclusa nel condizionale è casa()
per garantire che influisce solo sull'indice del blog principale.
Ecco come appaiono le funzioni di azione e callback:
add_action ('pre_get_posts', 'slug_no_videos_home'); function slug_no_videos_home ($ query) if ($ query-> is_home () && $ query-> is_main_query ()) $ tax_query = array (array ('taxonomy' => 'post_format', 'field' => 'slug') , 'terms' => 'post-format-video', 'operator' => 'NOT IN',)); $ query-> set ('tax_query', $ tax_query); return $ query;
Come puoi vedere nella callback, definiamo a tax_query
, usando il NON IN
operatore e quindi utilizzare il metodo set per aggiungere il tax_query
alla domanda principale dell'indice del blog.
Attraverso questa serie in cinque parti, hai imparato quali sono i formati dei post, come aggiungere il supporto al tema, come utilizzarli nel ciclo, come target con CSS personalizzati, come aggiornarli in massa e come organizzarli strumento.
Grazie a questa conoscenza, è possibile creare temi più potenti che rendono la portabilità dei dati un gioco da ragazzi.