实现这一点的唯一方法是避免编写代码或通过数据库查询执行搜索(我不建议这样做)是通过一个插件。在标准库中有一个免费的插件,User First Name / Full Name Search,可以为你做这件事。它可以通过你的管理面板的插件下的添加新功能来安装,因为它在WordPress目录中。与名字所暗示的不同,它也允许按姓氏搜索。
function getUsersBySurname($surname)
{
global $wpdb;
$users = $wpdb->get_results(
$wpdb->prepare(
"SELECT * FROM wp_users as user
LEFT JOIN wp_usermeta as meta on meta.user_id = user.id
WHERE meta.meta_key = 'last_name' AND meta.meta_value = %s",
$surname),
ARRAY_A);
return $users;
}
/**
* Strip the leading "%" from the LIKE condition so always start with the first
* letter in a user's first or last name.
*/
add_filter( 'get_meta_sql', function( $sql ) use ( $search ) {
global $wpdb;
// Convert the "%" character into the queries' placeholder.
$wildcard = \str_replace( "'", '', $wpdb->prepare( '%s', '%' ) );
return \str_replace( "LIKE '{$wildcard}{$search[0]}", "LIKE '{$search[0]}", $sql );
} );
5条答案
按热度按时间csbfibhn1#
实现这一点的唯一方法是避免编写代码或通过数据库查询执行搜索(我不建议这样做)是通过一个插件。在标准库中有一个免费的插件,User First Name / Full Name Search,可以为你做这件事。它可以通过你的管理面板的插件下的添加新功能来安装,因为它在WordPress目录中。与名字所暗示的不同,它也允许按姓氏搜索。
qni6mghb2#
是的,有两种方法。
1.您可以使用此Plugin
1.您可以使用此Code
ego6inou3#
此插件允许用户按以下方式进行搜索:* * 用户名、名字、姓氏、电子邮件或公司名称**。
https://wordpress.org/plugins/robust-user-search/
zvokhttg4#
这个函数将返回一个用户数组。所以你可以像这样使用它。它将打印每个姓为"Sanchez"的用户电子邮件
jxct1oxe5#
使用WP内核
get_users
函数的编程解决方案。如果您希望搜索仅从名称的开头开始,则为额外的点。
例如,如果您搜索"ada",并希望获得名为"adam"的用户,但不希望获得名为"vadam"的用户。