Efter alla de tidigare delarna är vi färdiga att gå igenom WP_Query
klass - men det betyder inte att vi är färdiga med serien! Det är dags att träffas WP_Query
s bror och syster klasser: WP_User_Query
, WP_Comment_Query
, WP_Meta_Query
och WP_Date_Query
.
I den här delen ska vi lära oss om hur vi använder WP_User_Query
klass för att fråga användare i WordPress.
Låt oss börja!
Du förmodligen få tanken på vad WP_User_Query
är genom att bara läsa sitt namn. Ja, ingen skulle förvänta sig att se WP_User_Query
arbetar med widgeten "Tag Cloud" - det är en klass som kör frågor om användare i WordPress.
Låt oss se vad WordPress Codex säger om WP_User_Query
klass:
WP_User_Query
är en klass, definierad iwp-includes / user.php
, som tillåter att fråga WordPress databas tabeller "wp_users
"och"wp_usermeta
'. Denna klass introducerades i Version 3.1 och som ett resultat, denWP_User_Search
klassen blev avlägsnad.
I huvudsak kan vi säga att "WP_User_Query
är WP_Query
för användare ". Det fungerar med wp_users
och wp_usermeta
att fråga användare och deras metadata.
Nu, låt oss se vad som ligger under huven och lära oss om WP_User_Query
s egenskaper, metoder och parametrar. Då ser vi hur det fungerar genom att gå igenom några exempel.
Snabbtips: Vi har täckt detta medan vi introducerar egenskaperna och metoderna för WP_Query
klass, men låt mig säga det igen som en snabb påminnelse: "Egenskaper" och "metoder" är bara "variabler" och "funktioner" som definieras i en PHP-klass.
Det finns bara sju egenskaper att lära sig om i WP_User_Query
klass. Kom ihåg: Dessa borde INTE användas för att ändra sina värden. Du kan hämta sina värden, men det är bättre att inte ändra dem.
$ query_vars
Den här egenskapen lagrar en associativ grupp av sökvariabler och deras värden.
$ resultat
Den här egenskapen har antalet funna objekt (användare i det här fallet) för frågan.
$ query_fields
Den här egenskapen, som liknar följande egenskaper, lagrar SQL-klausulerna för returfälten.
$ query_from
Den här fastigheten lagrar FRÅN
klausul för frågan.
$ query_where
Den här fastigheten lagrar VAR
klausul för frågan.
$ query_orderby
Den här fastigheten lagrar SORTERA EFTER
klausul för frågan och används för att beställa listan över användare som returneras.
$ query_limit
Den här fastigheten lagrar BEGRÄNSA
klausul för frågan och används för att begränsa antalet återvändande användare.
Kom ihåg metoderna för WP_Query
klass? Tja, den här klassen har bara fyra metoder och de fungerar precis som metoderna för WP_Query
. Låt oss snabbt se varför var och en finns.
skaffa sig()
MetodDenna metod hämtar bara en fråge variabel från frågan.
uppsättning()
MetodI motsats till det ovanstående, denna metod uppsättningar en fråga variabel istället för att få den.
get_results ()
MetodTill skillnad från WP_Query
, de WP_User_Query
klassen fungerar inte med en "slinga". Istället måste du använda get_results ()
metod för att få sökresultatet och arbeta med dem.
get_total ()
MetodDen här lilla metoden returnerar totalt antal poster (användare) för frågan.
Som WP_Query
klass, WP_User_Query
har parametrar som du behöver veta om. Men medan WP_Query
har ett stort antal parametrar (mer än 50!), WP_User_Query
har bara 17 parametrar att oroa sig för - och de är väldigt lika med dem i WP_Query
, så om du är bekant med dem, borde det inte vara något krångel att lära sig dessa.
blog_id
: Ett heltal för att ange ett blogg ID i multisite-nätverk. Standard till den aktuella bloggen.roll
: En sträng för att ange en användarroll. accepterar abonnent
, författare
, bidragsgivare
, författare
, redaktör
, administratör
, och alla användardefinierade användarroller.inkludera
: En rad användar-ID som ska inkluderas i frågan.utesluta
: En uppsättning användar-ID för att utesluta från frågan.Sök
: Ett strängvärde att söka efter i fälten på wp_users
tabell.search_columns
: En rad kolumner av wp_users
tabell. accepterar ID
, användarnamn
, user_url
, user_email
, och user_nicename
.sortera efter
: En sträng för att ange hur du sorterar de återvände användarna. accepterar ID
, DISPLAY_NAME
, namn
/Användarnamn
, logga in
/användarnamn
, fint namn
/user_nicename
, e-post
/user_email
, url
/user_url
, registrerad
/user_registered
, POST_COUNT
, och meta_value
. Standard till logga in
.ordning
: En sträng för att ställa in ordern att stiga upp (ASC
) eller nedåtgående (DESC
).offset
: Ett heltal för att ange hur många användare som ska överföras.siffra
: Ett heltal för att ange antalet användare att returnera.count_total
: En booleska (SANN
/FALSK
) för att ange huruvida man ska räkna det totala antalet användare som hittats.fält
: En sträng eller en array för att bestämma vilka fält som ska återvända från wp_users
tabell.vem
: En sträng (antingen författarna
eller Allt
, vilket är standardvärdet) för att ange vilka användare som ska fråga.meta_key
: En sträng för att ange en användarnätfältnyckel.meta_value
: En sträng för att ange ett anpassat användarfältvärde.meta_compare
: En sträng för att ställa in en operatör för att testa 'Meta_value'
parameter. accepterar '='
, '! ='
, '>'
, '> ='
, '<'
, '<='
, 'TYCKA OM'
, 'INTE SOM'
, 'I'
, 'INTE I'
, 'MELLAN'
, "INTE MELLAN"
, 'EXISTERAR'
, och "EXISTS"
. Standard till '='
.meta_query
: En matris för att skapa en fullständig metadatafråga, med hjälp av nycklar som liknar dem ovan:nyckel-
: En sträng för att ange en anpassad fältnyckel.värde
: En sträng eller en array för att ange ett anpassat fältvärde (eller värden).jämföra
: En sträng för att ställa in jämföroperatören. Accepterar samma värden som meta_compare
ovan.typ
: En sträng för att ställa in den anpassade fälttypen. accepterar NUMERISK
, BINÄR
, RÖDING
, DATUM
, DATUM TID
, DECIMAL
, SIGNERAD
, TID
, och OSIGNERAD
. Standard till RÖDING
.Nu har vi sett hur WP_User_Query
fungerar, låt oss göra några exempel för att lära oss hur vi använder det.
Låt oss säga att du vill lista dina redaktörer till dina läsare, men du kommer ihåg att en av dina redaktörer, Lisa, har gått med på att arbeta med dig på villkor av anonymitet, så du måste lämna henne i listan "Redaktörer". Så här konstruerar du frågan:
"Editor", "exclude" => $ exclude_list); // Anpassad fråga. $ my_user_query = nya WP_User_Query ($ args); // Få sökresultat. $ redaktörer = $ my_user_query-> get_results (); // Sök efter redaktörer om (! Tomt ($ redaktörer)) echo '
Låt oss säga att du vill samla e-postadresser till dina författare som använder en Gmail-adress. Här är vad du gör:
"författare", // Sök efter e-postadresser som slutar med "@ gmail.com". 'search' => '*@gmail.com', // Sök bara i fältet 'email'. 'search_columns' => array ('email'), // Returnera bara 'email' fältet. 'fields' => 'email'); // Anpassad fråga. $ my_user_query = nya WP_User_Query ($ args); // Få sökresultat. $ gmailers = $ my_user_query-> get_results (); ?>
Som du kan se finns det bara några skillnader mellan WP_Query
och WP_User_Query
, och skillnaderna faktiskt gör WP_User_Query
lättare att förstå. Jag hoppas att jag hjälpte dig att lära dig om denna snygga klass av WordPress.
Har du något att lägga till i den här artikeln? Dela dina tankar med oss i avsnittet Kommentarer nedan. Och om du gillade artikeln, glöm inte att dela den med dina vänner.
Vi ses i nästa del av serien!
Om du är intresserad av några skript och pluginprogram som kan ge dig mer avancerad funktionalitet med användar- och medlemssystem, finns det en användbar samling av medlemskapsskript på Envato Market.