Ich verwende WP_User_Query
, um nach Name, ID, E-Mail usw. zu suchen. In diesem Fall muss ich search_columns
Feld search_columns
verwenden, um die ID oder E-Mail des Benutzers zu übergeben.
Was ich tue ist
$my_users = new WP_User_Query( array( 'role' => $role, 'offset' => $offset , 'number' => $number, 'fields' => 'all', 'search_columns'=> array( '5','', 'johndoe_dd@yahoo1.com','',''), //'search_columns'=> $search_columns_array, 'meta_query' => $meta_query_array, ));
Zur Referenz http://wpsmith.net/2012/wp/an-introduction-to-wp_user_query-class/
Dies ist in dem Verweis enthalten, auf den Sie verweisen: Das Attribut search_columns
legt nicht fest, wonach in den einzelnen Spalten gesucht werden soll, sondern gibt an, welche Spalten nach dem in “search” festgelegten Begriff durchsucht werden sollen.
Insbesondere können Sie nur nach einem Begriff suchen. Sie können jedoch in einer oder mehreren Spalten suchen.
//Search user logins & emails for 'foo'. $my_users = new WP_User_Query( array( 'fields' => 'all', 'search'=>'foo', 'search_columns'=> array('user_login', 'user_email'), ));
Von der Quelle sind die Standardwerte:
user_email
– wenn ein ‘@’ im Suchbegriff vorhanden ist user_login
, ID
– wenn nicht, aber der Begriff ist numerisch user_url
– wenn nicht, aber der Begriff sieht wie eine URL aus (und Sie haben weniger als 10000 Benutzer). user_login
user_nicename
, wird standardmäßig user_login
und user_nicename
Die Quelle:
$search_columns = array(); if ( $qv['search_columns'] ) $search_columns = array_intersect( $qv['search_columns'], array( 'ID', 'user_login', 'user_email', 'user_url', 'user_nicename' ) ); if ( ! $search_columns ) { if ( false !== strpos( $search, '@') ) $search_columns = array('user_email'); elseif ( is_numeric($search) ) $search_columns = array('user_login', 'ID'); elseif ( preg_match('|^https?://|', $search) && ! wp_is_large_network( 'users' ) ) $search_columns = array('user_url'); else $search_columns = array('user_login', 'user_nicename'); }