User Query

Was ist WP_User_Query?

WP_User_Query ist die WordPress-Klasse für Datenbankabfragen auf Benutzer. Sie funktioniert ähnlich wie WP_Query für Beiträge – du übergibst Parameter, WordPress baut daraus eine SQL-Abfrage, und zurück kommt eine Liste von Benutzern, die den Kriterien entsprechen.

Wann braucht man WP_User_Query?

Immer dann, wenn du Benutzer gefiltert ausgeben möchtest – nach Rolle, nach Metadaten, nach Registrierungsdatum oder anderen Kriterien. Typische Anwendungsfälle:

  • Alle Autoren einer Website auflisten
  • Benutzer einer bestimmten Rolle filtern, z.B. alle Redakteure
  • Benutzer nach Custom Fields suchen, z.B. alle mit einem bestimmten Standort
  • Benutzer nach Aktivität oder Registrierungsdatum sortieren

Beispiel: Alle Autoren abfragen

$args = array(
    'role'    => 'author',
    'orderby' => 'display_name',
    'order'   => 'ASC',
);
$user_query = new WP_User_Query( $args );
$users = $user_query->get_results();

Das Ergebnis ist ein Array von WP_User-Objekten. Auf die Eigenschaften jedes Benutzers – Name, E-Mail, ID – greifst du dann direkt über das Objekt zu.

Die wichtigsten Parameter

  • role / role__in – nach einer oder mehreren Rollen filtern
  • search – Volltextsuche in Name, E-Mail und Login
  • meta_query – Filterung nach User-Metadaten (Custom Fields)
  • orderby – Sortierung nach Name, E-Mail, Registrierungsdatum etc.
  • number – maximale Anzahl zurückgegebener Benutzer
  • exclude – bestimmte Benutzer-IDs von der Abfrage ausschließen

WP_User_Query ist die saubere, offizielle Methode, um auf Benutzerdaten zuzugreifen. Direkte SQL-Abfragen auf die Benutzertabelle solltest du konsequent vermeiden – sie umgehen WordPress-Filter und sind wartungsfeindlich.