我正在制作一个搜索框,当一个"名字或全名"输入结果是一个列出user_id,电子邮件,全名等的表...
可以有多个用户使用相同的"名字或全名"因此我需要遍历结果集。
搜索也需要灵活,以便John Smith或John Smi或John能够工作。
e.g [firstname lastname] [搜索]
WordPress中有没有办法做到这一点,还是我必须使用MySQL?
答案 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可以很好地满足您的需求