如何通过在WordPress中搜索用户的全名来获取用户ID

时间:2014-08-27 23:21:35

标签: wordpress search built-in

我正在制作一个搜索框,当一个"名字或全名"输入结果是一个列出user_id,电子邮件,全名等的表...

可以有多个用户使用相同的"名字或全名"因此我需要遍历结果集。

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

e.g [firstname lastname] [搜索]

WordPress中有没有办法做到这一点,还是我必须使用MySQL?

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分: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可以很好地满足您的需求