我有用户display_name
有了这个我想得到id
该用户的。
那么,如何获取用户id呢?
我有用户display_name
有了这个我想得到id
该用户的。
那么,如何获取用户id呢?
您可以使用以下功能:
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
, email
或login
我们必须创建一个新函数。$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我认为没有提到这一点,可能是因为它搜索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;
}
完全未经测试,但我在代码中看不到它为什么不能使用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 );
默认情况下,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;
}
我是一个新手,所以请耐心等待。我正试图创建一个网站与程序员使用wordpress,但不使用它的博客或帖子<我自己不是程序员。我希望人们注册该网站,默认情况下,他们的角色将是修改后的订阅者。这意味着他们将无法访问管理员,也无法在网站上进行任何编辑。他们所能做的就是查看页面。此外,我想限制他们只查看一个或多个特定页面。管理员可以稍后更改其状态,并将其角色设置为常规订阅者。我真正想做的是创建一个有完全限制的网站用户将注册,但在管理员审核其注册并授予其访问权限之前,用户仍无法获得访问权限。这可能吗?