Masterat WP_User_Query

După toate părțile anterioare, am trecut prin WP_Query clasa - dar asta nu înseamnă că am terminat cu seria! E timpul să ne întâlnim WP_Queryclasele fratelui și sorei: WP_User_Query, WP_Comment_Query, WP_Meta_Query și WP_Date_Query.

În această parte, vom învăța să folosim WP_User_Query pentru a interoga utilizatorii în WordPress.

Sa incepem!

Ce este WP_User_Query?

Tu probabil obține ideea de ce WP_User_Query se citește doar numele său. Da, nimeni nu se aștepta să vadă WP_User_Query care lucrează cu widgetul "Tag Cloud" - este o clasă în care sunt difuzate interogări utilizatori în WordPress.

Să vedem ce spune WordPress Codex despre WP_User_Query clasă:

WP_User_Query este o clasă, definită în wp-includes / user.php, care permite interogarea tabelelor de baze de date WordPress "wp_users' și 'wp_usermeta“. Această clasă a fost introdusă în versiunea 3.1 și, ca urmare, WP_User_Search clasa a fost depreciată.

În esență, putem spune că "WP_User_Query este WP_Query pentru utilizatori " wp_users și wp_usermeta să interogați utilizatorii și metadatele acestora.

Acum, să vedem ce este sub capota și să învățăm WP_User_Queryproprietățile, metodele și parametrii. Atunci vom vedea cum funcționează, trecând prin câteva exemple.

Sfat rapid: Am acoperit acest lucru în timp ce introducem proprietățile și metodele WP_Query dar permiteți-mi să spun din nou ca un memento rapid: "Proprietățile" și "metodele" sunt doar "variabile" și "funcții" care sunt definite într-o clasă PHP.

Proprietățile WP_User_Query

Există doar șapte proprietăți pentru a afla mai multe în WP_User_Query clasă. Amintiți-vă: acestea ar trebui NU să fie folosite pentru a-și schimba valorile. Puteți să le aduceți valorile, dar este mai bine să nu le faceți modifica lor.

$ query_vars

Această proprietate stochează o matrice asociativă de variabile de interogare și valorile acestora.

rezultate $

Această proprietate are numărul de elemente găsite (utilizatorii în acest caz) pentru interogare.

$ query_fields

Această proprietate, similară cu următoarele proprietăți, stochează clauzele SQL pentru câmpurile returnate.

$ query_from

Această proprietate stochează DIN clauza pentru interogare.

$ query_where

Această proprietate stochează UNDE clauza pentru interogare.

$ query_orderby

Această proprietate stochează orderby clauza pentru interogare și este utilizată pentru a comanda lista utilizatorilor returnați.

$ query_limit

Această proprietate stochează LIMITĂ clauza pentru interogare și se utilizează pentru a limita numărul de utilizatori returnați.

Metode de WP_User_Query

Amintiți-vă metodele WP_Query clasă? Ei bine, această clasă are doar patru metode și ele funcționează la fel ca metodele WP_Query. Să vedem repede de ce există fiecare.

obține() Metodă

Această metodă extrage pur și simplu o variabilă de interogare din interogare.

a stabilit() Metodă

Spre deosebire de cea de mai sus, această metodă seturi o variabilă de interogare în loc să o obțină.

get_results () Metodă

Spre deosebire de WP_Query, WP_User_Query clasa nu funcționează cu o "buclă". În schimb, trebuie să utilizați get_results () pentru a obține rezultatele interogării și pentru a le lucra.

get_total () Metodă

Această mică metodă returnează numărul total de elemente (utilizatori) pentru interogare.

Parametrii WP_User_Query

Ca WP_Query clasă, WP_User_Query are parametrii pe care trebuie să știți. Dar în timp ce WP_Query are un număr mare de parametri (mai mult de 50!), WP_User_Query are doar 17 parametri de îngrijorat - și sunt foarte asemănătoare cu cele din WP_Query, Deci, dacă sunteți familiarizați cu aceștia, nu ar trebui să aveți niciun fel de dificultăți în a le învăța pe aceștia.

  • blog_id: Un număr întreg pentru a specifica ID-ul unui blog în rețele multisite. Implicit la blogul curent.
  • rol: Un șir pentru a declara un rol de utilizator. acceptă abonat, autor, colaborator, autor, editor, administrator, și orice rol de utilizator personalizat.
  • include: O serie de ID-uri de utilizator care trebuie incluse în interogare.
  • exclude: O serie de ID-uri de utilizator pentru a exclude din interogare.
  • căutare: O valoare de șir pe care să o căutați în câmpurile wp_users masa.
  • search_columns: O serie de coloane din wp_users masa. acceptă ID-ul, logare utilizator, user_url, USER_EMAIL, și user_nicename.
  • orderby: Un șir pentru a preciza cum să sortați utilizatorii returnați. acceptă ID-ul, numele afisat, Nume/nume de utilizator, Logare/logare utilizator, frumos nume/user_nicename, e-mail/USER_EMAIL, URL-ul/user_url, înregistrat/user_registered, POST_COUNT, și meta_value. Implicit la Logare.
  • Ordin: Un șir pentru a seta ordinea în ascensiune (ASC) sau descendent (DESC).
  • ofset: Un număr întreg pentru a specifica numărul de utilizatori care trec.
  • număr: Un număr întreg pentru a seta numărul de utilizatori care se vor întoarce.
  • count_total: Un boolean (ADEVĂRAT/FALS) pentru a determina dacă să contorizeze numărul total de utilizatori găsiți.
  • câmpuri: Un șir sau un matrice pentru a decide care câmpuri să se întoarcă de la wp_users masa.
  • care: Un șir (fie autori sau toate, care este valoarea implicită) pentru a indica care utilizatori să interogheze.
  • meta_key: Un șir pentru a preciza o cheie de utilizator meta personalizată.
  • meta_value: Un șir pentru a preciza o valoare de câmp meta de utilizator personalizat.
  • meta_compare: Un șir pentru a seta un operator pentru a testa 'Meta_value' parametru. acceptă '=', '! =', '>', '> =', '<', '<=', 'CA', 'NU CA', 'ÎN', 'NU ÎN', 'ÎNTRE', "NU DINTRE", 'EXISTS', și 'NU EXISTA'. Implicit la '='.
  • meta_query: Un matrice pentru a crea o interogare completă de date meta, folosind chei similare celor de mai sus:
    • cheie: Un șir pentru a seta o cheie de câmp particularizat.
    • valoare: Un șir sau un matrice pentru a seta o valoare a câmpului personalizat (sau valori).
    • comparaţie: Un șir pentru a seta operatorul de comparare. Acceptează aceleași valori ca și meta_compare de mai sus.
    • tip: Un șir pentru a seta tipul de câmp particularizat. acceptă NUMERIC, BINAR, CARBONIZA, DATA, DATETIME, ZECIMAL, SEMNAT, TIMP, și NESEMNAT. Implicit la CARBONIZA.

Încercați WP_User_Query cu câteva exemple

Acum am văzut cum WP_User_Query lucrări, să facem câteva exemple pentru a afla cum să le folosim.

Înscrierea tuturor editorilor Cu excepția Lisa

Să presupunem că doriți să vă listați editori cititorilor dvs., dar vă amintiți că unul dintre editorii dvs., Lisa, a fost de acord să lucreze cu dvs., cu condiția anonimatului, așa că trebuie să lăsați-o în lista "Editori". Iată cum construiți interogarea:

 'Editor', 'exclude' => $ exclude_list); // Interogare personalizată. $ my_user_query = noul WP_User_Query ($ args); // Obțineți rezultatele interogării. editoare $ = $ my_user_query-> get_results (); // Verificați dacă editorul (! Empty ($ editors)) echo '
    „; // Înainte de editori. foreach (editori $ ca $ editor) // Obțineți datele fiecărui editor. $ editor_info = get_userdata ($ editor-> ID); // Afișați numele editorului. echo "
  • ". $ editor_info-> display_name. '
  • „; echo '
„; altceva // Afișați mesajul "nici un editor găsit". echo __ ("Nu au fost găsiți editori!", "tutsplus"); ?>

Căutați utilizatori Gmail printre autorii dvs.

Să presupunem că doriți să colectați adrese de e-mail ale autorilor care utilizează o adresă Gmail. Iată ce faceți:

 "autori", // Căutați adrese de e-mail care se termină cu '@ gmail.com'. 'search' => '*@gmail.com', // Căutați doar câmpul "e-mail". 'search_columns' => array ('email'), // Returnați numai câmpul 'email'. 'câmpuri' => 'e-mail'); // Interogare personalizată. $ my_user_query = noul WP_User_Query ($ args); // Obțineți rezultatele interogării. $ gmailers = $ my_user_query-> get_results (); ?>

Înveliți totul

După cum puteți vedea, există doar câteva diferențe între WP_Query și WP_User_Query, și diferențele de fapt WP_User_Query mai ușor de înțeles. Sper că te-am ajutat să înveți despre această clasă îngrijită de WordPress.

Aveți ceva de adăugat la acest articol? Împărtășiți-vă gândurile cu noi în secțiunea Comentarii de mai jos. Și dacă ți-a plăcut articolul, nu uita să îl împarți cu prietenii tăi.

Ne vedem în următoarea parte a seriei!

Dacă sunteți interesat de câteva script-uri și plugin-uri care vă pot oferi funcții mai avansate cu sistemele de utilizator și de membru, există o colecție utilă de articole de scripturi de membru pe Envato Market.

Cod