set_role has no effect

时间:2017-06-06 作者:mario2k14

我正在运行WordPress 4.7.5,并试图以编程方式为客户设置用户角色。然而set_role 似乎没有任何效果。

已创建用户,但用户角色是subscriber。我还尝试了不同的角色,例如$user->set_role(\'administrator\') – 也无济于事。

这是我的代码–我做错了什么?

require($_SERVER[\'DOCUMENT_ROOT\'] . \'/wp-load.php\');
    if ( !username_exists( \'mytestuser\' ) ) {
        $user_id = wp_create_user(\'mytestuser\', \'testpass345\',\'[email protected]\');
        $user = new WP_User( $user_id );
    $user->set_role( \'author\' );
    }
提前感谢!

1 个回复
SO网友:Johansson

您可以使用wp_update_user 更新新创建用户的角色。

if ( !username_exists( \'mytestuser\' ) ) {
    $user_id = wp_create_user(\'mytestuser\', \'testpass345\',\'[email protected]\');
    $user_id = wp_update_user( array( \'ID\' => $user_id, \'role\' => \'author\' ) );
}
进一步阅读WordPress Codex.

或者,您可以删除当前角色并分配新角色:

if ( !username_exists( \'mytestuser\' ) ) {
    $user_id = wp_create_user(\'mytestuser\', \'testpass345\',\'[email protected]\');
    $user = new WP_User( $user_id );
    $user->remove_role( \'subscriber\' );
    $user->add_role( \'author\' );
}

结束

相关推荐

与wp_USERS一起查询wp_usermeta

我想使用WordPress查询功能,而不需要外部插件。以下是我目前掌握的情况: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)){