Mastering WP_User_Query

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_Querys 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!

Vad är WP_User_Query?

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 i wp-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, den WP_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_Querys 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.

Egenskaper för WP_User_Query

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.

Metoder för WP_User_Query

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.

De skaffa sig() Metod

Denna metod hämtar bara en fråge variabel från frågan.

De uppsättning() Metod

I motsats till det ovanstående, denna metod uppsättningar en fråga variabel istället för att få den.

De get_results () Metod

Till 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.

De get_total () Metod

Den här lilla metoden returnerar totalt antal poster (användare) för frågan.

Parametrar för WP_User_Query

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.

Prova WP_User_Query med några exempel

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.

Lista alla redaktörer utom Lisa

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 '
    '; // Loop över redaktörer. foreach ($ redaktörer som $ editor) // Få varje redaktörs data. $ editor_info = get_userdata ($ editor-> ID); // Visa redaktörens namn. eko "
  • '. $ editor_info-> display_name. '
  • '; eko
'; else // Display "no reditors found" meddelande. echo __ ('Inga redaktörer funna!', 'tutsplus'); ?>

Sök efter Gmail-användare bland dina författare

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 (); ?>

Wrapping allt upp

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.