În ultimul an, s-au scris multe despre îmbunătățirea interfeței cu utilizatorul WordPress: cea mai discutată despre schimbare a fost îmbunătățirea experienței de scriere.
Dar dacă sunteți un dezvoltator, veți dori să știți mai puțin despre asta și mai multe despre ceea ce sa schimbat sub capota. Aici voi demonstra una dintre cele mai interesante schimbări pentru dezvoltatori: îmbunătățiri la anumite tipuri de interogări.
Principalele modificări sunt următoarele:
Hai să vedem schimbările.
În versiunile anterioare ale WordPress, ai putea folosi un ȘI
sau SAU
pentru a defini interogări pentru termenii, datele și metadatele taxonomiei. Deci, de exemplu, următoarele argumente vor fi utilizate într-o interogare pe un site de rețetă care scoate rețete rapide de mic dejun:
'post', 'tax_query' => array ('relație' => 'AND', array ('taxonomy' => 'speed' )), array ('taxonomie' => 'masă', 'field' => 'slug', 'terms' => array ('mic dejun')))); $ query = noua valoare WP_Query ($ args); ?>
Aceasta caută 'viteză'
și 'masă'
taxonomii și posturi de ieșire cu 'rapid'
și 'mic dejun'
termeni respectiv.
Dar dacă ați vrea să scrieți o interogare mai complexă? Să presupunem că doriți rețete rapide pentru micul dejun și rețete lente pentru prânz (poate pentru cineva care dorește să facă micul dejun repede, astfel încât să aibă mai mult timp să gătească prânzul!). Nu doriți să utilizați un simplu ȘI
pentru a vă alătura toate elementele interogării dvs., de atunci veți obține rețete lente pentru micul dejun și masa de prânz, de exemplu. Și tu nu vrei să folosești unul SAU
declarație care leagă toți termenii, așa cum veți obține toate felurile de rețete care au doar unul dintre termenii interogați împreună cu alți pe care doriți să îi filtrați.
Vestea bună este că acum poți face asta. Pentru a consulta rețetele rapide pentru micul dejun și rețete lente pentru prânz, ați putea folosi următoarele:
array ('taxonomy' => 'masă', 'field' => 'slug', 'terms' => array (' ), array ('relationship' => 'AND'), array ('taxonomy' => 'speed', 'field' array ('taxonomy' => 'speed', 'field' => '' ' slug ',' termeni '=> array (' lent ')))))); $ query = noua valoare WP_Query ($ args); ?>
Aici am folosit două matrice imbricate:
SAU
, deoarece căutăm postări care sunt fie rețete rapide de mic dejun, fie rețete de prânz lent.ȘI
deoarece doriți ca postul să aibă ambii termeni.ȘI
.Desigur, ați putea să vă modificați interogările pentru a include mai mulți termeni și valori de taxonomie și pentru a obține cât mai complexe de care aveți nevoie.
Exemplul pe care l-am prezentat mai sus utilizează termeni de taxonomie, dar această caracteristică a fost adăugată și la interogări de date și metadate. Metadatele sunt potențial în cazul în care lucrurile ar putea deveni interesante, având în vedere că aveți în vedere atât de multe valori.
Sintaxa funcționează exact în același mod pentru interogările de date și metadate. Pentru meta interogările pe care le înlocuiți tax_query
cu meta_query
si foloseste 'cheie'
și 'valoare'
ca parametri. Pentru interogările de date pe care le înlocuiți tax_query
cu date_query
și utilizați parametrii de date furnizați în Codul WordPress.
Pentru a interoga comentariile, utilizați WP_Comment_Query
clasa în locul cel mai frecvent utilizate WP_Query
clasă. Această clasă a adăugat opt noi parametri:
'Author__in'
: identificați autorul comentariului (sau o serie de autori)'Author__not_in'
: identificarea comentariilor nu de un anumit autor (sau de o serie de autori)'Post_author__in'
: identificați autorul (sau grupul de autori) al postării pe care a fost făcut comentariu'Post_author__not_in'
: exclude comentariile făcute în postări scrise de un anumit autor sau de o serie de autori'Comment__in'
: comentarii cu un anumit ID sau o serie de ID-uri'Comment__not_in'
: excludeți comentariile cu un anumit ID sau un șir de coduri de identificare'postează în'
: comentarii făcute într-o postare sau dintr-un șir de postări (utilizând codul postului)'Post__not_in'
: exclude comentariile făcute într-o postare sau într-un șir de postări (utilizând ID-ul postului)Valorile folosite pentru acestea sunt ID-ul autorului, ID-ul comentariului sau ID-ul postului, după caz.
Rețineți că WP_Comment_Query
clasa acceptă și interogări imbricate.
Au existat, de asemenea, câteva corecții de erori pe care le-ați putea fi de folos:
date_query
a fost folosit împreună cu o tax_query
sau meta_query
a fost fixat.'orderby' => 'meta_value'
a fost folosit atunci când a trecut 'Meta_query'
cu SAU
relație în WP_Query
, acest lucru a folosit pentru a sparge interogarea. Asta a fost rezolvată.Dacă doriți scăderea tuturor detaliilor, o puteți găsi pe site-ul de bază WordPress.
Aceste îmbunătățiri la interogări iau WordPress cu un pas mai departe spre capacitatea completă a CMS. Abilitatea de a utiliza interogări imbricate înseamnă că puteți transmite conținut în moduri mult mai flexibile și complexe. Va fi interesant să vedem cum îi folosesc oamenii!