Bine ați venit în a treia parte a seriei noastre "Mastering WP_Query". În partea anterioară, am trecut prin 13 funcții WordPress care sunt legate de WP_Query
clasă. În această parte vom examina cârligele WordPress (filtre și acțiuni) pe care le puteți utiliza împreună cu WP_Query
.
Deci, fără să mai vorbim, să începem!
În "Referința filtrelor" din Codex există 16 filtre WordPress listate sub titlul "Filtre WP_Query". În această secțiune, vom vorbi despre ei. Va fi o secțiune destul de rapidă, deoarece majoritatea filtrelor se referă la diferite "clauze" ale unei interogări de bază de date realizată de WP_Query
clasă.
Vom reveni la ele imediat după ce trecem prin filtrele care nu au legătură cu clauzele.
found_posts
Acest filtru vă permite să modificați numărul de articole găsite fără limita care provine WP_Query
„s posts_per_page
argument.
Acest filtru este util în special pentru crearea paginii personalizate. Să vedem ce spune Codul:
De exemplu, dacă declarați o valoare de offset personalizată în interogările dvs., WordPress NU va deduce offsetul de la parametrul $ wp_query-> found_posts (de exemplu, dacă aveți 45 de posturi utilizabile după o compensare de 10, WordPress va ignora offset și încă dau found_posts o valoare de 55).
Are sens.
found_posts_query
Numărul de elemente găsite este calculat cu SELECT FOUND_ROWS ()
comandă în MySQL. Acest filtru vă permite să modificați această comandă la altceva, în cazul în care trebuie să calculați numărul de elemente găsite într-un mod diferit.
posts_request
Dacă doriți să modificați interogarea completă SQL, acesta este filtrul pe care trebuie să-l utilizați. În mod esențial, el suprascrie întreaga interogare SQL compusă de WP_Query
clasă.
posts_results
Dacă doriți să modificați PHP mulțime
acea WP_Query
generează cu interogarea SQL, puteți utiliza acest filtru. Există un exemplu clar despre Codul, astfel încât să puteți vedea cum funcționează.
(Rețineți că acest filtru gestionează brut array generat de interogarea SQL.)
the_posts
Spre deosebire de posts_results
, the_posts
filtrul așteaptă ca matricea să fie procesată intern, ceea ce înseamnă că matricea ar fi verificată împotriva posturilor nepublicate și lipicioase. Utilizați această opțiune dacă nu doriți ca anunțurile dvs. nepublicate sau postările să nu fie publicate.
SELECTAȚI
Clauza) a Interogării: posts_fields
SELECTAȚI
clauza unei interogări SQL determină câmpurile bazei de date care vor fi selectate din rândurile bazei de date rezultate și acest filtru vă ajută să-l filtrați.
LIMITĂ
Clauza interogării: post_limits
LIMITĂ
clauza unei interogări SQL stabilește limitările interogării și acest filtru vă ajută să-l filtrați.
DISTINCT
Clauza interogării: posts_distinct
DISTINCT
o clauză a unei interogări SQL afirmă că interogarea ar trebui să returneze numai rezultate diferite, iar acest filtru vă ajută să-l filtrați. Natural, WP_Query
nu returnează rezultate distincte, dar când utilizați acest filtru cu o funcție care revine "DISTINCT"
, interogarea va fi ajustată pentru a returna numai rezultate diferite.
UNDE
Clauza interogării: posts_where
UNDE
o clauză a unei interogări SQL este folosită pentru a filtra MySQL-urile SELECTAȚI
, INTRODUCE
, ACTUALIZAȚI
sau ȘTERGE
, iar acest filtru vă ajută să filtrați acest filtru. In timp ce WP_Query
clasa face tot munca necesară pentru filtrarea rezultatelor, puteți să faceți un pas mai departe utilizând acest filtru.
UNDE
Clauza interogării după ce a fost calculată pagina: posts_where_paged
Acest filtru este o iterație la posts_where
filtru, pe care îl puteți utiliza cu interogări de paginare.
UNDE
Clauza unei interogări de căutare: posts_search
O altă iterație la posts_where
filtru este acest filtru, pe care îl puteți modifica UNDE
clauza unei interogări care este utilizată pentru a obține rezultate de căutare în WordPress.
A ADERA
Clauza interogării: posts_join
A ADERA
clauza unei interogări SQL vă permite să lucrați comanda SQL în mai multe tabele de baze de date, iar acest filtru vă ajută să-l filtrați. Aceasta este una dintre părțile avansate ale MySQL, așa că nu recomand să folosiți acest filtru decât dacă știți foarte bine cum MySQL A ADERA
e de lucru.
A ADERA
Clauza interogării după ce a fost calculată pagina: posts_join_paged
Doar noi posts_where_paged
este o iterație de posts_where
, aceasta este o repetare la posts_join
filtru care funcționează la interogările de paginare.
COMANDA DE LA
Clauza interogării: posts_orderby
COMANDA DE LA
clauza unei interogări SQL ordonează interogarea și acest filtru vă ajută să filtrați comanda.
A SE GRUPA CU
Clauza interogării: posts_groupby
A SE GRUPA CU
clauza unei interogări SQL face ca interogarea să revină la rezultatele "grupate" printr-un câmp de bază de date și acest filtru vă ajută să filtrați cum să grupați rezultatele.
posts_clauses
Dacă doriți să rezolvați toate clauzele în același timp, există și un filtru: posts_clauses
. Acest filtru acoperă UNDE
, A SE GRUPA CU
, A ADERA
, COMANDA DE LA
, DISTINCT
, SELECTAȚI
, și LIMITE
clauze.
Acum am analizat filtrele legate de WP_Query
, să trecem la celălalt tip de cârlige: acțiuni.
pre_get_posts
Înainte de interogarea parcelei, puteți interacționa cu ea (de exemplu, introduceți variabile suplimentare de interogare) utilizând această acțiune. Să vedem un exemplu rapid de la Tom McFarlin pentru a afla cum să excludem o categorie din bucla principală:
set ('category__not_in', $ exclus); * / set_query_var ('category__not_in', $ excluded); add_action ('pre_get_posts', 'tutsplus_exclude_category'); ?>
parse_query
Spre deosebire de pre_get_posts
, care intervine cu interogarea inainte de variabilele de interogare sunt setate, parse_query
acționează procesul după sunt setate variabilele de interogare. Astfel, ar trebui să utilizați această acțiune dacă doriți să verificați variabilele curente și să acționați în conformitate cu acestea.
bara
Termenul actiunea
este un pic confuz, deoarece este numele unui cârlig de acțiune, a WP_Query
-precum și o metodă a funcției WP_Query
clasă.
Această acțiune, după cum spune Codexul, ne permite să modificăm obiectul post imediat după ce am fost interogat și stabilit. Folosind această acțiune, puteți modifica ieșirea direct. Să vedem un exemplu rapid:
". __ ("FEATURED", "tutsplus"). '
Acțiunile și filtrele sunt întotdeauna un subiect distractiv pentru a vorbi și a scrie despre. (Știu pentru faptul că cele două serii despre acțiunile WordPress și filtrele WordPress au fost distractive pentru a scrie și am primit o mare reacție din partea cititorului nostru.) Sper că v-ați bucurat de această parte la fel de mult cum mi-a plăcut scrisul.
Doriți să adăugați ceva la articol? Trage un comentariu în secțiunea de comentarii de mai jos. Și dacă ți-a plăcut articolul, nu uita să îl împarți cu prietenii tăi!
Ne vedem în partea următoare, unde vom vorbi despre proprietățile și metodele lui WP_Query
clasă!