În această serie am analizat modul în care WordPress poate fi folosit pentru a dezvolta aplicații web mult ca un număr de cadre diferite și alte instrumente disponibile.
Începând din ultimul articol, am început să ne uităm la diferitele opțiuni pe care le avem în legătură cu interogarea datelor WordPress. În primul rând, am revizuit WP_Query
.
În acest articol, vom continua să ne uităm la opțiunile disponibile pentru extragerea informațiilor din baza de date prin vizualizarea WP_User_Query
după care ne vom îndrepta atenția asupra modului în care putem rula interogări directe SQL în baza de date.
Dar, pentru moment, să aruncăm o privire la ceea ce ne oferă WordPress în ceea ce privește gestionarea utilizatorilor, a informațiilor acestora și a meta datelor asociate acestora.
Înainte de a intra în discutarea actualului API, să examinăm rapid unele informații despre baza de date WordPress, astfel încât să stabilim un nivel comun de informații de pe care să lucrăm pentru restul articolului, API, voi acoperi.
În ultimul articol, am menționat trei puncte specifice:
Când ne-am acoperit WP_Query
, am analizat modul în care pot fi utilizate pentru a prelua postări, pagini, tipuri personalizate de postări, taxonomii asociate, categorii, termeni și așa mai departe.
asemănător, WP_User_Query
oferă o mare parte din aceeași funcționalitate, dar în contextul utilizatorilor. Codul definește interogarea:
WP_User_Query este o clasă, ..., care permite interogarea tabelelor de baze de date WordPress 'wp_users' și 'wp_usermeta'.
Spre deosebire de definiția inițială a WP_Query
, acest lucru este mai puțin tehnic și relativ ușor de înțeles mai ales dacă sunteți familiarizat cu wp_users
tabelul și wp_usermetadata
Mese.
Dar dacă nu sunteți, nu faceți mare lucru: vom acoperi tot ceea ce este necesar nu numai pentru a înțelege tabelele, ci și pentru a înțelege API-ul.
wp_users
tabelul și wp_usermetadata
tabelele sunt responsabile pentru stocarea datelor de utilizator.
Informațiile pentru fiecare tabelă sunt disponibile în Codul (pe care îl puteți găsi aici și aici) și vă recomand că toată lumea să o revizuiască; cu toate acestea, informațiile despre fiecare tabel pot fi simplificate după cum urmează:
Pentru a vedea acest lucru în acțiune, puteți să aruncați o privire asupra oricăror informații din tabelul bazei de date WordPress și veți găsi că aici se află informații cum ar fi Prenume, Nume, Capacități, si asa mai departe.
Lucrul frumos este că, dacă construiți o aplicație, atunci tabelul meta oferă o mulțime de flexibilitate în ceea ce privește cât de multe informații le puteți asocia în mod real cu oricare dintre utilizatorii dvs..
Mai întâi, rețineți că setarea unei interogări de utilizator este asemănătoare cu crearea unui a WP_Query
. Prin asta, vreau să spun că luați o instanță a clasei prin trecerea unui șir de argumente în constructor.
Acum, în ceea ce privește argumentele, este posibil să se precizeze orice se află în tabelele bazei de date asociate. De exemplu, puteți căuta utilizând:
Dar este mai mult decât atât. De asemenea, puteți specifica parametrii care se referă la meta date, astfel încât să puteți interoga diferiți utilizatori, să zicem, pe baza rolului lor și a unei colecții de informații despre meta de utilizator.
Vom examina acest lucru putin mai detaliat momentan, insa este important de remarcat faptul ca puteti construi interogari si mai avansate care se ocupa de includerea de piese de date meta de utilizator, cu exceptia metadatelor utilizatorilor, cum si de care doriti sa comandati datele (de exemplu, prin numele de utilizator ascendent) și chiar și parametrii de paginare, astfel încât să putem accesa cu ușurință înregistrările utilizatorilor.
Bineînțeles, ce bine este să vorbim despre un API fără să analizăm cum să îl folosim? În următorul exemplu, vom lua un exemplu de conturi de utilizator și apoi vom repeta interogarea până când vom construi unul care încearcă să demonstreze o varietate de caracteristici pe care le oferă.
Cu acest lucru, să spunem că vrem să realizăm următoarele:
Deci sa începem. Amintiți-vă, vom construi această linie de interogare în linie, așa că ar trebui să fie relativ ușor de înțeles pe măsură ce aceasta continuă să evolueze.
Dacă, în orice moment, aveți întrebări despre ceea ce se întâmplă, atunci nu ezitați să le aruncați în comentarii.
În primul rând, dorim să specificăm că vrem să includem toți administratorii:
$ args = array ('rol' => 'Administrator'); $ user_query = noul WP_User_Query ($ args);
După aceasta, vrem să ne asigurăm că au primul nume și ultima specificată. Din moment ce aceste informații sunt stocate în tabelul de date meta, vom avea nevoie de parametrii de utilizator pentru interogarea meta.
Mai precis, vom cere să preluăm toți administratorii care au un prim nume specificat (sau, mai degrabă, nu este gol).
$ arge = array ('rol' => 'Administrator', 'meta_query' => array ('meta_key' => 'first_name', 'meta_value' => 'meta_compare' noul WP_User_Query ($ args);
În continuare, vom ordona rezultatele după data de înregistrare a administratorilor în ordine crescătoare:
$ meta_value '=> "meta_compare" =>'! = ')' orderby '=>' array = 'înregistrat', 'comanda' => 'ASC'); $ user_query = new WP_User_Query ($ args);
Și, în cele din urmă, vom spune că vrem să retragem cinci înregistrări la un moment dat:
// Numărul de înregistrări care trebuie afișate pe o pagină $ display_count = 5; // Trebuie să obținem numărul paginii curente pe care suntem. // Aceasta este utilă pentru calcularea offsetului corect $ page = get_query_var ('paginat')? get_query_var ("paginat"): 1; // După aceea, calculați offsetul $ offset = ($ page - 1) * $ display_count; $ meta_value '=> "meta_compare" =>'! = ')' orderby '=>' array = 'înregistrat', 'comanda' => 'ASC', 'număr' => $ display_count 'offset' => $ offset); $ user_query = new WP_User_Query ($ args);
Și am terminat. Acum este o chestiune de iterare prin interogare, pentru a ne transmite rezultatele. Din nefericire, cu toții putem avea o altă viziune asupra modului în care vrem să facem acest lucru, deci rețineți că bucla pe care o prezint este doar un exemplu (versus exemplu):
// Dacă rezultatele sunt bazate pe criteriile noastre ... $ results = "; if (! Empty ($ user_query-> results)) // Pentru fiecare rezultat, să afișăm numele administratorului ($ user_query-> results as $ user) $ results. = 'Numele afișat este:' $ user-> display_name; $ results. = '
„; $ results = get_user_meta ($ user-> ID, 'first_name', true); $ results = '
„; Afișați informațiile de pe ecran. echo $ results;
Și notă: o diferență de la WP_User_Query
impotriva WP_Query
este că nu este nevoie să resetați niciun fel de date post, deoarece nu lucrăm cu altceva decât cu o bucla autonomă.
În acest moment, căutarea naturală apare cand este o idee bună de folosit WP_User_Query
, și veți primi probabil răspunsuri diferite de la persoane diferite, deoarece unele dintre ele previzualizează folosirea altor metode pentru a-și recupera informațiile.
Dar, în general, dacă voi obține informații din baza de date care se ocupă direct și strict cu utilizatorii, apoi folosesc WP_User_Query
.
Acum, deoarece setul de rezultate poate fi returnat într-un mod care ar putea fi fuzionat din punct de vedere tehnic sau cel puțin reluat cu un alt set de date, atunci este cu siguranță posibil să faceți acest lucru; cu toate acestea, eu personal cred că acest lucru necesită un pic de experiență care ar putea să nu se potrivească factura pentru toată lumea.
Cu alte cuvinte, nu ezitați să o utilizați așa cum doriți, dar tratați-o cu prudență.
Deci, cu WP_Query
și WP_User_Query
în spatele nostru, avem încă un API la care ne putem uita pentru a încheia discuția noastră și aceasta este abilitatea de a interoga direct baza de date WordPress.
În ultimul articol care se ocupă de interogări, vom analiza acest API, vom finaliza discuția noastră și apoi vom începe evaluarea finală a tot ceea ce am acoperit în această serie.