it-swarm.com.de

WP Benutzerabfrage mit Suchspalten und Meta-Abfrage

Ich versuche, eine Abfrage mit WP User Query zu erstellen, nach der gesucht werden kann

  • benutzer Email
  • benutzername
  • vorname
  • nachname

Das sind meine Argumente:

 $ args = array (
 'role' => 'author', 
 'number' => $ limit, 
 'offset' => $ offset, 
 'order' => $ order_sort, 
 'orderby' => $ order_by, 
 'search' => '*'. esc_attr ($ search_str). '*', 
 'meta_query' => array (
 'relation' => 'AND', 
 array (
 'key' => 'reg_complete', 
 'value' => 1, 
 'compare' => '=', 
), 
 array (
 'relation' => 'OR' , 
 Array (
 'key' => 'first_name', 
 'value' => $ search_str, 
 'compare' => 'LIKE' 
), 
 array (
 'key' => 'last_name', 
 'value' => $ search_str, 
 'compare' => 'LIKE' 
) 
), 
) 
); 

funktioniert einwandfrei, wenn nach Vor-/Nachnamen gesucht wird, aber die Namen/E-Mails nicht übereinstimmen

hast du eine Idee, wie du das beheben kannst?

edit: entfernte die search_columns von args und fügte diesen Filter hinzu:

 add_filter ('user_search_columns', 'my_user_search_columns', 10, 3); 
 
 function my_user_search_columns ($ search_columns, $ search, $ this) {
 $ search_columns [] = 'user_email'; 
 $ search_columns [] = 'user_nicename'; 
 
 $ search_columns zurückgeben; 
} 

Gleiche Ergebnisse wie vor den Änderungen

4
Mathias

Sie müssen den user_search_columns-Filter verwenden, um die Spalten hinzuzufügen, nach denen Sie suchen möchten.

Mit dem Filter user_search_columns wird bestimmt, welche Benutzerfelder in der Datenbank bei der Suche nach Benutzerinformationen verwendet werden.

https://codex.wordpress.org/Plugin_API/Filter_Reference/user_search_columns

1
James Barrett