Mastering WP_User_Query

Na al die voorgaande delen zijn we klaar door de WP_Query klasse, maar dat betekent niet dat we klaar zijn met de serie! Het is tijd om elkaar te ontmoeten WP_Queryde klassen van broer en zus: WP_User_Query, WP_Comment_Query, WP_Meta_Query en WP_Date_Query.

In dit deel gaan we leren over het gebruik van de WP_User_Query klasse om gebruikers in WordPress te ondervragen.

Laten we beginnen!

Wat is WP_User_Query?

U waarschijnlijk het idee krijgen van wat WP_User_Query is door alleen de naam ervan te lezen. Ja, niemand zou verwachten te zien WP_User_Query werken met de widget "Tag Cloud" - het is een klasse die vragen over uitvoert gebruikers in WordPress.

Laten we eens kijken wat WordPress Codex zegt over de WP_User_Query klasse:

WP_User_Query is een klasse, gedefinieerd in wp-includes / user.php, waarmee query's kunnen worden geraadpleegd op WordPress-databasetabellen 'wp_users'en'wp_usermeta'. Deze klasse is geïntroduceerd in versie 3.1 en als gevolg hiervan is de WP_User_Search klas is verouderd.

In wezen kunnen we zeggen dat "WP_User_Query is WP_Query voor gebruikers ". Het werkt met wp_users en wp_usermeta om gebruikers en hun metadata te bevragen.

Laten we nu kijken wat er onder de motorkap zit en meer te weten komt WP_User_Queryeigenschappen, methoden en parameters. Dan zullen we zien hoe het werkt door een paar voorbeelden te bekijken.

Snelle tip: We hebben dit besproken tijdens het introduceren van de eigenschappen en methoden van de WP_Query klasse, maar laat ik het nog een keer herhalen als een snelle herinnering: "Eigenschappen" en "methoden" zijn slechts "variabelen" en "functies" die binnen een PHP-klasse zijn gedefinieerd.

Eigenschappen van WP_User_Query

Er zijn slechts zeven eigenschappen om te leren over in de WP_User_Query klasse. Vergeet niet: deze zouden moeten NIET worden gebruikt om hun waarden te wijzigen. Je kunt hun waarden ophalen, maar het is beter om dat niet te doen wijzigen hen.

$ query_vars

Deze eigenschap slaat een associatieve reeks queryvariabelen en hun waarden op.

$ resultaten

Deze eigenschap heeft het aantal gevonden items (gebruikers in dit geval) voor de query.

$ query_fields

Deze eigenschap, vergelijkbaar met de volgende eigenschappen, slaat de SQL-clausules op voor de retourvelden.

$ query_from

Deze eigenschap bewaart de VAN clausule voor de vraag.

$ query_where

Deze eigenschap bewaart de WAAR clausule voor de vraag.

$ query_orderby

Deze eigenschap bewaart de orderBy clausule voor de query en wordt gebruikt om de lijst met geretourneerde gebruikers te bestellen.

$ query_limit

Deze eigenschap bewaart de BEGRENZING clausule voor de query en wordt gebruikt om het aantal teruggestuurde gebruikers te beperken.

Methoden van WP_User_Query

Denk aan de methoden van de WP_Query klasse? Nou, deze klasse heeft slechts vier methoden en ze werken net als de methoden van WP_Query. Laten we snel zien waarom elke bestaat.

De krijgen() Methode

Met deze methode haalt u eenvoudig een queryvariabele op uit de query.

De set () Methode

In tegenstelling tot wat hierboven staat, deze methode sets een queryvariabele in plaats van deze te krijgen.

De get_results () Methode

anders WP_Query, de WP_User_Query klasse werkt niet met een "lus". In plaats daarvan moet u de get_results () methode om de queryresultaten te krijgen en eraan te werken.

De get_total () Methode

Deze kleine methode retourneert het totale aantal items (gebruikers) voor de query.

Parameters van WP_User_Query

Zoals de WP_Query klasse, WP_User_Query heeft parameters waarover je moet weten. Maar terwijl WP_Query heeft een groot aantal parameters (meer dan 50!), WP_User_Query heeft slechts 17 parameters om zorgen over te maken - en ze lijken erg op de parameters in WP_Query, dus als je daar bekend mee bent, zou het niet moeilijk moeten zijn om deze te leren.

  • blog_id: Een geheel getal om de ID van een blog op te geven in multisite-netwerken. Standaard ingesteld op de huidige blog.
  • rol: Een tekenreeks om een ​​gebruikersrol te vermelden. accepteert abonnee, schrijver, bijdrager, schrijver, editor, beheerder, en elke aangepaste gebruikersrol.
  • omvatten: Een array met gebruikers-ID's die in de query moeten worden opgenomen.
  • uitsluiten: Een reeks gebruikers-ID's om uit te sluiten van de query.
  • zoeken: Een tekenreekswaarde waarnaar moet worden gezocht in de velden van de wp_users tafel.
  • search_columns: Een reeks kolommen van de wp_users tafel. accepteert ID kaart, gebruiker login, user_url, user_email, en user_nicename.
  • orderby: Een tekenreeks om aan te geven hoe de geretourneerde gebruikers moeten worden gesorteerd. accepteert ID kaart, Weergavenaam, naam/user_name, Log in/gebruiker login, leuke naam/user_nicename, e-mail/user_email, url/user_url, geregistreerd/user_registered, POST_COUNT, en meta_value. Standaardwaarden voor Log in.
  • bestellen: Een tekenreeks om de volgorde in oplopend in te stellen (ASC) of aflopend (DESC).
  • compenseren: Een geheel getal om het aantal gebruikers op te geven dat moet worden doorgegeven.
  • aantal: Een geheel getal om het aantal gebruikers in te stellen dat moet worden geretourneerd.
  • count_total: A Boolean (TRUE/VALSE) om aan te geven of het totale aantal gevonden gebruikers moet worden geteld.
  • velden: Een tekenreeks of array om te bepalen welke velden moeten worden geretourneerd vanuit de wp_users tafel.
  • wie: Een string (hetzij auteurs of allemaal, wat de standaardwaarde is) om aan te geven welke gebruikers moeten zoeken.
  • meta_key: Een tekenreeks om een ​​aangepaste meta-veldsleutel voor de gebruiker op te geven.
  • meta_value: Een tekenreeks om een ​​aangepaste gebruikersmetaveldwaarde te vermelden.
  • meta_compare: Een tekenreeks waarmee een operator de test kan uitvoeren 'Meta_value' parameter. accepteert '=', '! =', '>', '> =', '<', '<=', 'NET ZOALS', 'NIET ZOALS', 'IN', 'NIET IN', 'TUSSEN', 'NIET TUSSEN', 'Bestaat', en 'BESTAAT NIET'. Standaardwaarden voor '='.
  • meta_query: Een array om een ​​volledige metagegevensquery te maken, met behulp van sleutels die lijken op de bovenstaande:
    • sleutel: Een tekenreeks om een ​​aangepaste veldsleutel in te stellen.
    • waarde: Een tekenreeks of een array om een ​​aangepaste veldwaarde (of waarden) in te stellen.
    • vergelijken: Een tekenreeks om de vergelijkingsoperator in te stellen. Accepteert dezelfde waarden als meta_compare bovenstaande.
    • type: Een tekenreeks om het aangepaste veldtype in te stellen. accepteert NUMERIC, BINAIR, CHAR, DATUM, DATUM TIJD, DECIMALE, GETEKEND, TIJD, en UNSIGNED. Standaardwaarden voor CHAR.

WP_User_Query proberen met een paar voorbeelden

Nu hebben we gezien hoe WP_User_Query werken, laten we een paar voorbeelden nemen om te leren hoe het te gebruiken.

Alle bewerkers vermelden behalve Lisa

Laten we zeggen dat u uw editors wilt laten zien aan uw lezers, maar u herinnert zich dat een van uw redacteuren, Lisa, heeft ingestemd om met u te werken op voorwaarde van anonimiteit, dus u moet haar achterlaten in de lijst "Editors". Zo construeer je de query:

 'Editor', 'exclude' => $ exclude_list); // Aangepaste zoekopdracht. $ my_user_query = nieuwe WP_User_Query ($ args); // Krijg query resultaten. $ editors = $ my_user_query-> get_results (); // Controleer of er editors zijn als (! Empty ($ editors)) echo '
    '; // Herhalende editors. foreach ($ editors als $ editor) // Krijg de gegevens van elke redacteur. $ editor_info = get_userdata ($ editor-> ID); // Show editor's name. echo '
  • '. $ editor_info-> weergavenaam. '
  • '; echo '
'; else // Bericht "geen bewerkers gevonden" weergeven. echo __ ('Geen editors gevonden!', 'tutsplus'); ?>

Zoeken naar Gmail-gebruikers onder uw auteurs

Stel dat u e-mailadressen van uw auteurs wilt verzamelen die een Gmail-adres gebruiken. Dit is wat je doet:

 'authors', // Zoeken naar e-mailadressen die eindigen op '@ gmail.com'. 'zoeken' => '*@gmail.com', // Alleen zoeken in het veld 'e-mail'. 'search_columns' => array ('email'), // Retourneer alleen het veld 'email'. 'velden' => 'e-mail'); // Aangepaste zoekopdracht. $ my_user_query = nieuwe WP_User_Query ($ args); // Krijg query resultaten. $ gmailers = $ my_user_query-> get_results (); ?>

Alles inpakken

Zoals je ziet, zijn er maar een paar verschillen tussen WP_Query en WP_User_Query, en de verschillen maken eigenlijk WP_User_Query gemakkelijker te begrijpen. Ik hoop dat ik je heb geholpen meer te weten te komen over deze nette klasse van WordPress.

Heb je iets toe te voegen aan dit artikel? Deel uw mening met ons in het gedeelte Opmerkingen hieronder. En als je het artikel leuk vond, vergeet dan niet om het met je vrienden te delen.

Tot ziens in het volgende deel van de serie!

Als u geïnteresseerd bent in een aantal scripts en plug-ins die u meer geavanceerde functionaliteit met gebruikers- en lidmaatschapssystemen kunnen bieden, is er een handige verzameling itemscriptscripts op Envato Market.