在WordPress中以编程方式创建管理员用户

a5g8bdjr  于 12个月前  发布在  WordPress
关注(0)|答案(5)|浏览(141)

最近我有一个客户来找我建立一个新网站,他们也忘记了所有的登录信息,但他们确实有FTP访问权限。
如何在WordPress中以编程方式创建管理员用户?

hxzsmxv2

hxzsmxv21#

这将创建一个管理员用户,如果放置在一个主题functions.php文件。请根据需要更改前三个变量。

/* 
* Create an admin user silently
*/

add_action('init', 'xyz1234_my_custom_add_user');

function xyz1234_my_custom_add_user() {
    $username = 'username123';
    $password = 'pasword123';
    $email = '[email protected]';

    if (username_exists($username) == null && email_exists($email) == false) {

        // Create the new user
        $user_id = wp_create_user($username, $password, $email);

        // Get current user object
        $user = get_user_by('id', $user_id);

        // Remove role
        $user->remove_role('subscriber');

        // Add role
        $user->add_role('administrator');
    }
}

字符串

k4emjkb1

k4emjkb12#

Accepted answer有问题,当它运行两次时会抛出致命错误,因为第二次$user_id将是空的。解决这个问题的方法:

function rndprfx_add_user() {
    $username = 'username123';
    $password = 'azerty321';
    $email = '[email protected]';

    if (username_exists($username) == null && email_exists($email) == false) {
        $user_id = wp_create_user( $username, $password, $email );
        $user = get_user_by( 'id', $user_id );
        $user->remove_role( 'subscriber' );
        $user->add_role( 'administrator' );
    }
}
add_action('init', 'rndprfx_add_user');

字符串

yrefmtwq

yrefmtwq3#

以下是创建新管理员用户的查询:

INSERT INTO wp_users (user_login, user_pass, user_nicename, user_email, user_status) VALUES ('newadmin', MD5('pass123'), 'firstname lastname', '[email protected]', '0');

INSERT INTO wp_usermeta (umeta_id, user_id, meta_key, meta_value) VALUES (NULL, (Select max(id) FROM wp_users), 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');

INSERT INTO wp_usermeta (umeta_id, user_id, meta_key, meta_value) VALUES (NULL, (Select max(id) FROM wp_users), 'wp_user_level', '10');

字符串

zbdgwd5y

zbdgwd5y4#

简单地说,你需要在你的functions.php中添加这个代码示例:

function wpb_admin_account(){
  $user = 'Username';
  $pass = 'Password';
  $email = '[email protected]';
  if ( !username_exists( $user )  && !email_exists( $email ) ) {
    $user_id = wp_create_user( $user, $pass, $email );
    $user = new WP_User( $user_id );
    $user->set_role( 'administrator' );
  } 
}
add_action('init','wpb_admin_account');

字符串
别忘了用你自己的数据来更改邮箱,密码和电子邮件地址。这里有更详细的教程,可能会对你有所帮助。How to create a new WordPress admin user programmatically

mwecs4sa

mwecs4sa5#

看看上面提供的例子,我想给给予一些额外的提示。
首先,你不能只在init钩子中使用这段代码-在这种情况下,WordPress会尝试在每个页面加载时创建一个用户。
第二,当你可以使用wp_insert_user()函数时,为什么要使用wp_create_user()
正确示例:

add_action( 'init', function() ) {
    // do nothing if we didn't provide ?create_user_123=anything in the URL
    if( empty( $_GET[ 'create_user_123' ] ) ) {
        return;
    }

    wp_insert_user( 
        array(
            'user_login' => 'user login goes here', 
            'user_pass' => 'password will go here',
            'role' => 'administrator',
        )
    );

});

字符串
我从这里拿了个例子https://rudrastyh.com/wordpress/create-user-programmatically.html#create-admin-user

相关问题