Mastering WP_User_Query

Etter alle de tidligere delene er vi ferdige med å gå gjennom WP_Query klasse-men det betyr ikke at vi er ferdige med serien! Det er på tide å møte WP_Querys bror og søster klasser: WP_User_Query, WP_Comment_Query, WP_Meta_Query og WP_Date_Query.

I denne delen skal vi lære om å bruke WP_User_Query klasse for å spørre brukere i WordPress.

La oss begynne!

Hva er WP_User_Query?

Du sannsynligvis få ideen om hva WP_User_Query er ved å bare lese navnet sitt. Ja, ingen ville forvente å se WP_User_Query jobber med widgeten "Tag Cloud" - det er en klasse som kjører spørsmål om brukere i WordPress.

La oss se hva WordPress Codex sier om WP_User_Query klasse:

WP_User_Query er en klasse, definert i wp-includes / user.php, som gjør det mulig å spørre WordPress database tabeller 'wp_users'og'wp_usermeta'. Denne klassen ble introdusert i versjon 3.1 og som et resultat, den WP_User_Search Klassen ble avskrevet.

I hovedsak kan vi si at "WP_User_Query er WP_Query for brukere ". Det fungerer med wp_users og wp_usermeta å spørre brukere og deres metadata.

Nå, la oss se hva som er under hetten og lære om WP_User_Querys egenskaper, metoder og parametere. Da ser vi hvordan det fungerer ved å gå gjennom noen få eksempler.

Raskt tips: Vi har dekket dette mens du introduserer egenskapene og metodene til WP_Query klasse, men la meg si det igjen som en rask påminnelse: "Egenskaper" og "metoder" er bare "variabler" og "funksjoner" som er definert i en PHP-klasse.

Egenskaper for WP_User_Query

Det er bare sju egenskaper å lære om i WP_User_Query klasse. Husk: Disse skal IKKE brukes til å endre verdiene sine. Du kan hente sine verdier, men det er bedre å ikke endre dem.

$ query_vars

Denne egenskapen lagrer en assosiativ rekkefølge av spørringsvariabler og deres verdier.

$ resultater

Denne egenskapen har antall funnet elementer (brukere i dette tilfellet) for spørringen.

$ query_fields

Denne egenskapen, som ligner på følgende egenskaper, lagrer SQL-klausulene for returfeltene.

$ query_from

Denne eiendommen lagrer FRA klausul for spørringen.

$ query_where

Denne eiendommen lagrer HVOR klausul for spørringen.

$ query_orderby

Denne eiendommen lagrer REKKEFØLGE ETTER klausul for spørringen og brukes til å bestille listen over brukere som returneres.

$ query_limit

Denne eiendommen lagrer GRENSE klausul for spørringen og brukes til å begrense antall returnerte brukere.

Metoder for WP_User_Query

Husk metodene til WP_Query klasse? Vel, denne klassen har bare fire metoder, og de fungerer akkurat som metodene til WP_Query. La oss raskt se hvorfor hver enkelt eksisterer.

De få() Metode

Denne metoden henter bare en spørringsvariabel fra spørringen.

De sett() Metode

I motsetning til den ovenfor, denne metoden settene en spørringsvariabel i stedet for å få den.

De get_results () Metode

I motsetning til WP_Query, de WP_User_Query klassen fungerer ikke med en "loop". I stedet må du bruke get_results () metode for å få spørresultatene og arbeidet med dem.

De get_total () Metode

Denne lille metoden returnerer totalt antall elementer (brukere) for spørringen.

Parametre for WP_User_Query

Som WP_Query klasse, WP_User_Query har parametere som du trenger å vite om. Men mens WP_Query har et stort antall parametere (mer enn 50!), WP_User_Query har bare 17 parametere å bekymre seg for, og de er veldig lik de i WP_Query, så hvis du er kjent med dem, bør det ikke være noe problem å lære disse.

  • blog_id: Et heltall for å angi en blogg ID i multisite-nettverk. Standard til dagens blogg.
  • rolle: En streng for å angi en brukerrolle. godtar abonnenten, forfatter, bidragsyter, forfatter, redaktør, administrator, og enhver skreddersydd brukerrolle.
  • inkludere: En rekke bruker-IDer som skal inkluderes i spørringen.
  • utelukke: En rekke bruker-IDer for å ekskludere fra spørringen.
  • Søke: En strengverdi for å søke etter i feltene i wp_users bord.
  • search_columns: En rekke kolonner av wp_users bord. godtar ID, Brukerinnlogging, USER_URL, user_email, og user_nicename.
  • rekkefølge etter: En streng for å angi hvordan du sorterer de returnerte brukerne. godtar ID, DISPLAY_NAME, Navn/brukernavn, Logg Inn/Brukerinnlogging, fint navn/user_nicename, e-post/user_email, url/USER_URL, registrert/user_registered, POST_COUNT, og meta_value. Standard til Logg Inn.
  • rekkefølge: En streng for å sette rekkefølgen til stigende (ASC) eller synkende (DESC).
  • offset: Et heltall for å angi antall brukere som skal overgå.
  • Nummer: Et heltall for å angi antall brukere som skal returnere.
  • count_total: En boolsk (EKTE/FALSK) for å angi om du skal telle totalt antall brukere funnet.
  • Enger: En streng eller array for å bestemme hvilke felt som skal returneres fra wp_users bord.
  • hvem: En streng (enten forfattere eller alle, som er standardverdien) for å angi hvilke brukere som skal spørre.
  • meta_key: En streng for å angi en tilpasset bruker meta feltnøkkel.
  • meta_value: En streng for å angi en tilpasset bruker meta felt verdi.
  • meta_compare: En streng for å sette en operatør til å teste 'Meta_value' parameter. godtar '=', '! =', '>', '> =', '<', '<=', 'SOM', 'IKKE LIKE', 'I', 'IKKE I', 'MELLOM', "IKKE MELLOM", 'Finnes', og "IKKE EXISTERER". Standard til '='.
  • meta_query: En matrise for å opprette en full meta-dataforespørsel, ved hjelp av taster som ligner på de ovennevnte:
    • nøkkel: En streng for å angi en egendefinert feltnøkkel.
    • verdi: En streng eller en matrise for å angi en egendefinert feltverdi (eller verdier).
    • sammenligne: En streng for å angi sammenligningsoperatøren. Godtar de samme verdiene som meta_compare ovenfor.
    • type: En streng for å angi egendefinert felttype. godtar NUMERIC, BINARY, CHAR, DATO, DATO TID, DESIMAL, SIGNERT, TID, og UNSIGNED. Standard til CHAR.

Prøver WP_User_Query med få eksempler

Nå har vi sett hvordan WP_User_Query virker, la oss gjøre et par eksempler for å lære å bruke den.

Viser alle redaktører unntatt Lisa

La oss si at du vil liste dine redaktører til leserne dine, men du husker at en av redaktørene dine, Lisa, har avtalt å jobbe med deg på betingelse av anonymitet, så du må forlate henne i "Redigeringslisten". Slik konstruerer du spørringen:

 'Editor', 'exclude' => $ exclude_list); // Tilpasset søk. $ my_user_query = ny WP_User_Query ($ args); // Få forespørselsresultater. $ editors = $ my_user_query-> get_results (); // Sjekk etter redaktører hvis (! Tom ($ redaktører)) echo '
    '; // Loop over redaktører. foreach ($ redaktører som $ editor) // Få hver redaktør data. $ editor_info = get_userdata ($ editor-> ID); // Vis redaktørens navn. ekko '
  • '. $ editor_info-> display_name. '
  • '; ekko '
'; ellers // Display "ingen redaktører funnet" melding. ekko __ ('Ingen redaktører funnet!', 'tutsplus'); ?>

Søk etter Gmail-brukere blant dine forfattere

La oss si at du vil samle e-postadresser til forfatterne dine som bruker en Gmail-adresse. Her er hva du gjør:

 'forfattere', // Søk etter e-postadresser som slutter med '@ gmail.com'. 'search' => '*@gmail.com', // Søk bare i feltet 'email'. 'search_columns' => array ('email'), // Returner bare 'email'-feltet. 'felt' => 'e-post'); // Tilpasset søk. $ my_user_query = ny WP_User_Query ($ args); // Få forespørselsresultater. $ gmailers = $ my_user_query-> get_results (); ?>

Wrapping Everything Up

Som du kan se, er det bare noen få forskjeller mellom WP_Query og WP_User_Query, og forskjellene faktisk gjør WP_User_Query lettere å forstå. Jeg håper jeg har hjulpet deg med å lære om denne fine klassen av WordPress.

Har du noe å legge til i denne artikkelen? Del dine tanker med oss ​​i kommentarfeltet nedenfor. Og hvis du likte artikkelen, ikke glem å dele den med vennene dine.

Se deg i neste del av serien!

Hvis du er interessert i noen få skript og plugins som kan gi deg mer avansert funksjonalitet med bruker- og medlemssystemer, er det en nyttig samling av elementer av medlemsskript på Envato Market.