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_Query
de 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!
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 inwp-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 deWP_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_Query
eigenschappen, 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.
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.
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.
krijgen()
MethodeMet deze methode haalt u eenvoudig een queryvariabele op uit de query.
set ()
MethodeIn tegenstelling tot wat hierboven staat, deze methode sets een queryvariabele in plaats van deze te krijgen.
get_results ()
Methodeanders 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.
get_total ()
MethodeDeze kleine methode retourneert het totale aantal items (gebruikers) voor de 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
.Nu hebben we gezien hoe WP_User_Query
werken, laten we een paar voorbeelden nemen om te leren hoe het te gebruiken.
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 '
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 (); ?>
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.