我们如何通过其显示名称获取用户ID

时间:2013-03-12 作者:Adi

我有用户display_name 有了这个我想得到id 该用户的。

那么,如何获取用户id呢?

5 个回复
SO网友:Mike Madern

您可以使用以下功能:

function get_user_id_by_display_name( $display_name ) {
    global $wpdb;

    if ( ! $user = $wpdb->get_row( $wpdb->prepare(
        "SELECT `ID` FROM $wpdb->users WHERE `display_name` = %s", $display_name
    ) ) )
        return false;

    return $user->ID;
}
这是相同的代码get_user_by() 使用,但由于该函数仅允许ID, slug, emaillogin 我们必须创建一个新函数。

SO网友:s_ha_dum

使用WP_User_Query.

$args= array(
  \'search\' => \'Display Name\', // or login or nicename in this example
  \'search_fields\' => array(\'user_login\',\'user_nicename\',\'display_name\')
);
$user = new WP_User_Query($args);
刚才回答了一个非常类似的问题:How we can get the author ID by its Name

SO网友:Peter Bushnell

我认为没有提到这一点,可能是因为它搜索display\\u name以及电子邮件地址、URL、ID和用户名,这超出了要求,但在我的特定用例中效果很好。

function get_user_id_by_search( $search_term ) {
    $user = get_users(array(\'search\' =>  $search_term));

    if (!empty($user))
        return $user[0]->ID;
}

SO网友:Chip Bennett

完全未经测试,但我在代码中看不到它为什么不能使用get_users() 使用元查询:

$users = get_users( array(
    \'meta_key\' => \'display_name\',
    \'meta_value\' => \'John Doe\'
) );

$user = ( ( isset( $users[0] ) ? $users[0] : false );

$user_id = ( $user ? $user->ID : false );

SO网友:Manchumahara

默认情况下,wordpress用户查询不允许在搜索列中显示\\u名称,即使已将其添加到中,下面是一个解决方案http://manchumahara.com/2014/04/03/search-user-by-display-name-in-wordpress-sitewide/

示例:

$args= array(
  \'search\' => \'Display Name\', // or login or nicename in this example
  \'search_fields\' => array(\'user_login\',\'user_nicename\',\'display_name\')
);
$user = new WP_User_Query($args);
上面的查询找不到display\\u name

您需要使用此筛选器

add_filter(\'user_search_columns\', \'user_search_columns_bd\' , 10, 3);

function user_search_columns_bd($search_columns, $search, $this){

    if(!in_array(\'display_name\', $search_columns)){
        $search_columns[] = \'display_name\';
    }
    return $search_columns;
}

结束

相关推荐

Users Role and Access

我是一个新手,所以请耐心等待。我正试图创建一个网站与程序员使用wordpress,但不使用它的博客或帖子<我自己不是程序员。我希望人们注册该网站,默认情况下,他们的角色将是修改后的订阅者。这意味着他们将无法访问管理员,也无法在网站上进行任何编辑。他们所能做的就是查看页面。此外,我想限制他们只查看一个或多个特定页面。管理员可以稍后更改其状态,并将其角色设置为常规订阅者。我真正想做的是创建一个有完全限制的网站用户将注册,但在管理员审核其注册并授予其访问权限之前,用户仍无法获得访问权限。这可能吗?