I løpet av det siste året har det blitt skrevet mye om forbedringene til WordPress brukergrensesnitt: den mest snakket om endring har vært den forbedrede skriveopplevelsen.
Men hvis du er en utvikler vil du være villig til å vite mindre om det og mer om hva som er endret under hetten. Her viser jeg en av de mest interessante endringene for utviklere: forbedringer av bestemte typer søk.
De viktigste endringene er som følger:
La oss se på endringene.
I tidligere versjoner av WordPress kan du bruke en OG
eller ELLER
uttalelse for å definere spørringer for taksonomi vilkår, datoer og metadata. Så for eksempel vil følgende argumenter bli brukt i en spørring på et oppskriftssted som utsender raske frokostoppskrifter:
'post', 'tax_query' => array ('relation' => 'OG', array ('taksonomi' => 'speed', 'field' => 'slug' )), array ('taxonomy' => 'måltid', 'field' => 'slug', 'terms' => array ('frokost')))); $ query = nytt WP_Query ($ args); ?>
Dette ser etter 'hastighet'
og 'måltid'
taksonomier og utgangsposter med 'rask'
og 'frokost'
vilkårene henholdsvis.
Men hva om du ønsket å skrive et mer komplekst spørsmål? La oss si at du ville ha raske oppskrifter til frokost og langsomme oppskrifter til lunsj (kanskje for noen som ønsker å få frokost gjort raskt, så de har mer tid til å lage mat lunsj!). Du vil ikke bruke en enkel OG
uttalelse for å bli med alle elementene i søket ditt, siden da vil du få sakte oppskrifter til frokost og lunsj, for eksempel. Og du vil ikke bruke en ELLER
uttalelse som knytter alle betingelsene, da du får alle slags oppskrifter som bare har en av de forespurte vilkårene sammen med de andre du vil filtrere ut.
Den gode nyheten er at nå kan du gjøre dette. For å spørre raske oppskrifter til frokost og sakte oppskrifter til lunsj, bruker du følgende:
array ('relation' => 'OR', array ('relasjon' => 'OG', array ('taxonomy' => 'måltid', 'field' => 'slug', 'terms' => array frokost)), matrise ('taxonomy' => 'speed', 'field' => 'slug', 'terms' => array ('taxonomy' => 'meal', 'field' => 'slug', 'terms' => array slug ',' terms '=> array (' slow '))))))); $ query = nytt WP_Query ($ args); ?>
Her har jeg brukt to nestede arrays:
ELLER
, fordi vi leter etter innlegg som er enten raske frokostoppskrifter eller sakte lunsjoppskrifter.OG
fordi du vil at innlegget skal ha begge vilkårene.OG
.Selvfølgelig kan du variere dine spørsmål for å inkludere flere taksonomiske vilkår og verdier, og få så komplisert som du trenger.
Eksemplet jeg har gitt ovenfor bruker taksonomiske vilkår, men denne funksjonen har også blitt lagt til dato og metadatasøk. Metadata er potensielt der ting kan bli interessante, ettersom du har mulighet for så mange verdier.
Syntaxen fungerer på samme måte som dato og metadatasøk. For meta spørringer du erstatter tax_query
med meta_query
og bruk 'nøkkel'
og 'verdi'
som parametrene. For datoforespørsler du erstatter tax_query
med date_query
og bruk dataparametrene som er oppgitt i WordPress Codex.
For å spørre kommentarer, bruker du WP_Comment_Query
klasse i stedet for de mest brukte WP_Query
klasse. Denne klassen har hatt åtte nye parametere lagt til det:
'Author__in'
: identifiser kommentarforfatter (eller en rekke forfattere)'Author__not_in'
: Identifiser kommentarer ikke av en bestemt forfatter (eller en rekke forfattere)'Post_author__in'
: Identifiser forfatter (eller utvalg av forfattere) av innlegget kommentaren ble laget på'Post_author__not_in'
: ekskluder kommentarer gjort på innlegg skrevet av bestemte forfattere eller utvalg av forfattere'Comment__in'
: kommentarer med en bestemt ID eller en rekke ID-er'Comment__not_in'
: ekskluder kommentarer med en bestemt ID eller en rekke IDer'Post__in'
: kommentarer gjort på et innlegg eller en rekke innlegg (ved hjelp av post-ID)'Post__not_in'
: ekskluder kommentarer gjort på et innlegg eller en rekke innlegg (ved hjelp av post-ID)Verdiene som brukes for disse er forfatter-ID, kommentar ID eller post-ID etter behov.
Legg merke til at WP_Comment_Query
klassen støtter nå også nestede spørringer.
Det har også vært et par feilrettinger som du kanskje finner nyttige:
date_query
ble brukt sammen med a tax_query
eller meta_query
har blitt løst.'orderby' => 'meta_value'
ble brukt når du passerte en 'Meta_query'
med ELLER
relasjon i WP_Query
, dette pleide å bryte spørringen. Dette har blitt løst.Hvis du vil ha lowdown på alle detaljene, kan du finne det på det store WordPress-kjerneområdet.
Disse forbedringene på spørringer tar WordPress et skritt videre til full CMS-funksjonalitet. Evnen til å bruke nestede spørringer betyr at du kan utdata innhold på mye mer fleksible og komplekse måter. Det vil være interessant å se hvordan folk bruker dem!