Spør etter postformat
tax_query
argument for WP_Query
. For å spørre etter alle innlegg med sitatformat, ville vi opprette vår WP_Query
som dette:$ args = array ('post_type' => 'post', 'tax_query' => array (array ('taxonomy' => 'post_format', 'field' => 'slug', 'terms' => 'postformat -sitat', ) ) ); $ query = nytt WP_Query ($ args);
Merk at i eksemplet ovenfor er termen prefixed med "post-format-". Vær også oppmerksom på at vi kan sende en rekke vilkår til vilkårene argumenter i tax_query
for å søke etter mer enn ett format.
Hvis du har mange innlegg på nettstedet ditt i noen postformater, vil du sannsynligvis markere hvert format. Hvis du for eksempel er en visuell artist som bruker bloggen din til å vise frem videoer og bilder, og bruker postformater, kan du opprette en meny med innleggene dine i formatet video og bilde separat.
Det første trinnet er å sette opp en rekke argumenter for WP_Query
, akkurat som den jeg viste deg over, unntatt denne gangen uten det bestemte innleggformatet som er angitt i "vilkår" -argumentet til tax_query
og en rekke formater, sammen med etiketter som skal brukes i menyutgangen.
Her er hva disse to arrays ser ut som:
// initial WP_Query args $ args = array ('post_type' => 'innlegg', 'posts_per_page' => 5, 'tax_query' => array (array ('taxonomy' => 'post_format', 'field' => ' slug ',))); // formater for å vise $ formats = array ('name' => 'video', 'label' => 'Videoer'), array ('name' => 'image', 'label' => 'Bilder' ),);
Med disse to arrays kan vi lage en for hver
sløyfe ut av den andre gruppen, for å søke etter innlegg med det nåværende formatet og utføre en liste over innleggene. Dette vil innebære, i hver iterasjon av sløyfen, å legge til vilkårene argumentet bruker sett()
, skaper en forekomst av WP_Query
, looping gjennom det, og deretter unsetting vilkårene argumentet.
Innsiden av WP_Query
mens sløyfe vi kan bruke get_term_link ()
å opprette en lenke til postformatets arkivside, som egentlig er et taksonomisk termarkiv. For de enkelte innleggene kan vi bruke get_permalink ()
å opprette linken til innlegget. Her ser det ut som sløyfen ser ut:
ekko '';
Sørg for å legge til flere klasser eller IDer til merket for å få denne generiske koden til å ligne en meny i temaet ditt, og vær så snill å erstatte formatene som blir vist i henhold til dine behov.
Nå som du har en meny for dine innleggformater, kan det være lurt å ekskludere innlegg av bestemte formater fra hovedbloggindeksen din. Dette vil tillate deg å bruke bloggen din som en blogg og postformatmenyen for å markere videoer, bilder, lydfiler eller andre formaterte innlegg.
For å beholde innlegg i et bestemt format, må du bruke en pre_get_post
filter for å legge til en tax_query
til hovedspørsmålet. De tax_query
vil se ut som de jeg allerede viste deg, men vil ha et ekstra argument for å ekskludere innlegg med formatet, ved hjelp av "operatør" -argumentet. Ved å sette operatøren til "IKKE IN" vil eventuelle tilsvarende innlegg bli ekskludert.
Denne spørringen vil også bli pakket inn i betingelsene is_home ()
For å sikre at den bare påvirker hovedbloggindeksen.
Her ser du hvordan handlings- og tilbakeringingsfunksjonen ser ut:
add_action ('pre_get_posts', 'slug_no_videos_home'); funksjonen 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' => 'IKKE IN',))); $ query-> set ('tax_query', $ tax_query); returner $ spørring;
Som du kan se i tilbakeringingen, definerer vi en tax_query
, bruker IKKE I
operatør og bruk deretter innstilt metode for å legge til tax_query
til hovedspørsmålet i bloggindeksen.
Gjennom denne femdelte serien har du lært hva innleggformater er, hvordan du legger til støtte for dem til temaet ditt, hvordan du bruker dem i loop, målrett dem med tilpasset CSS, masseoppdater dem og bruk dem som innholdsorganisering verktøy.
Bevæpnet med denne kunnskapen, kan du lage morsomme temaer som gjør dataportabilitet til en bris.