Bine ați venit în partea finală a seriei - bine, din punct de vedere tehnic, partea finală va fi "Seria Finale", dar veți obține ideea. În această parte, veți afla despre două clase de soră numite WP_Meta_Query
și WP_Date_Query
.
Fără să mai vorbim, să începem!
WP_Meta_Query
clasa este o "clasă helper", ajutând WP_Query
pentru a face interogări cu meta date.
După cum știți, WordPress stochează trei tipuri de meta date în baza de date: post meta, meta de utilizator și meta de comentariu. Am văzut în tutorialele anterioare că putem rula meta interogări în cadrul interogărilor pe care le facem cu WP_Query
, WP_User_Query
și WP_Comment_Query
clase (cu 'Meta_query'
parametru). WP_Meta_Query
se execută de fapt când faceți aceste întrebări.
Se pare că puteți obține SQL-urile pentru aceste interogări legate de meta cu ajutorul funcției WP_Meta_Query
clasă. Această clasă nu obține rezultatele interogării date, ci pregătește comenzile SQL pentru a le utiliza în altă parte.
Nu putem spune că este un tutorial dacă nu facem un exemplu, nu? Cu un exemplu simplu, vom vedea cum putem folosi WP_Meta_Query
clasă în viața reală. (Acordat, este un lucru extrem de specific pentru a obține codul SQL pentru o interogare meta-related, dar voi încerca să vină cu un exemplu din lumea reală.)
Să ne imaginăm că doriți să creați un plugin special pentru "posturi legate de postări" pentru site-ul dvs. propriu, unde veți lista postările care au aceeași valoare meta pentru o cheie meta-sau o altă valoare meta pentru o altă cheie meta. Și în loc să faci o interogare meta într-un WP_Query
de exemplu, doriți să obțineți codul SQL al interogării pentru al folosi dinamic în blocuri de cod separate. Iată pașii pentru pregătirea acelui cod SQL:
'Meta_key' => 'Some_Other_Key', 'meta_value' => '' ' 'Some_Other_Value', 'compare' => '=')); $ my_meta_query = nou WP_Meta_Query; $ my_meta_query-> parse_query_vars ($ my_meta_query_args); $ my_meta_query_sql = $ my_meta_query-> get_sql ('post', $ wpdb-> posts, 'ID'); ?>
Acolo te duci: The $ my_meta_sql
variabila stochează codul SQL pentru interogarea dvs. specială și puteți utiliza acest cod SQL oriunde doriți în cadrul proiectului.
Ca și cum WP_Meta_Query
, WP_Date_Query
este o clasă de ajutor pentru WP_Query
, WP_User_Query
și WP_Comment_Query
clase. Această clasă de ajutor a fost introdusă în WordPress versiunea 3.7. Atunci, clasa nu a sprijinit WP_User_Query
, dar din versiunea 4.1, puteți interoga în tabelul utilizatorilor ( user_registered
coloana specific).
Similar cu WP_Meta_Query
și capacitatea sa de a interoga meta chei și valori, WP_Date_Query
ne permite să căutăm câmpuri de date în interiorul postărilor, comentariilor și tabelelor utilizatorilor. Și exact ca WP_Meta_Query
, această clasă de ajutor vă permite, de asemenea, să returnați codul SQL pregătit pentru a rula o interogare în funcție de dată.
Pentru a înțelege pe deplin modul în care WP_Date_Query
să mergem printr-un exemplu cu ea. Va fi un alt exemplu inutil de specific, dar nu ar fi bine sa lasati aceasta parte fara un exemplu.
Să ne imaginăm că, din anumite motive, trebuie să întrebăm comentariile făcute în luna curentă și înainte de prânz. (Vă rog împușcați-mi un comentariu dacă găsiți un caz bun pentru a prelua comentariile făcute în luna curentă și înainte de prânz!) Iată cum puteți obține codul SQL pentru această interogare bizară:
data ('n'), matricea ('înainte' => 'amiază'), 'relația' => 'AND'); $ my_date_query = noua valoare WP_Date_Query ($ my_date_query_args, 'comment_date'); $ my_date_query_sql = $ meu_date_query-> get_sql (); ?>
Acolo te duci. Rețineți că puteți utiliza formate de date relative PHP, care sunt cu adevărat utile.
Sfat rapid: Christian Bruckner are un a mare post pe MarketPress.com despre modul în care WP_Date_Query
lucrări. Este puțin depășit (deoarece a fost scris înainte de a fi lansat WordPress 4.1), dar este foarte bine scris și încă o citire bună. Asigurați-vă că ați verificat-o.
Cu aceste două clase de ajutoare, terminăm călătoria lungă de disecție WP_Query
clasă. Aceasta a fost una dintre cele mai lungi serii de tutorial din istoria Tuts +, așa că vă mulțumim pentru că ne-ați purtat până la sfârșit! În următoarea (și ultima) parte, vom recapitula ceea ce am trecut prin ultima oară și vom închide seria.
Aveți ceva de adăugat la acest articol? Dacă da, nu ezitați să vă împărtășiți gândurile în secțiunea Comentarii de mai jos. Și dacă ți-a plăcut articolul, nu uita să îl împarți cu prietenii tăi!