2014-08-27 71 views
0

我正在创建一个搜索框,当输入“名字或全名”时,结果是一个列出user_id,电子邮件,全名等的表格。 ..如何通过在WordPress中搜索用户的全名来获取用户ID

可以有多个用户具有相同的“名字或全名”,因为这将导致我需要循环访问结果集。

搜索也需要灵活,以便John Smith或John Smi或John能够工作。

e.g [名姓] [搜索]

是否有WordPress的一个办法做到这一点还是我必须使用MySQL?

回答

0

如果您正在编写自己的搜索功能,则需要使用Wp_User_Query。你会发现有很多的例子,该页面,但你需要的可能是最基本的形式,像这样:

$users = new WP_User_Query(array(
    'search'   => '*'.esc_attr($your_search_string).'*', 
    'search_columns' => array(
     'user_login', 
     'user_nicename', 
     'user_email', 
     'user_url', 
    ), 
)); 
$users_found = $users->get_results(); 

但是,如果你想只在你的后台搜索用户,那么你可能使用插件,那里有很多。 This one作品相当不错你需要什么

1

感谢,

这是我需要

$search_name = 'John Smith'; 
$name_array = preg_split("/[\s,]+/", $search_name); 
$users = new WP_User_Query(array(
    'meta_query' => array(
     'relation' => 'AND', 
     array(
      'key' => 'first_name', 
      'value' => $name_array[0], 
      'compare' => 'LIKE' 
     ), 
     array(
      'key' => 'last_name', 
      'value' => $name_array[1], 
      'compare' => 'LIKE' 
     ) 
    ) 
     )); 
$users_found = $users->get_results(); 
相关问题