programing

WordPress에서 프로그래밍 방식으로 관리자 사용자 생성

topblog 2023. 4. 3. 21:09
반응형

WordPress에서 프로그래밍 방식으로 관리자 사용자 생성

최근에 새로운 웹 사이트를 구축하기 위해 고객이 찾아왔습니다.또, 로그인 정보를 모두 잊어버리고 있었지만, FTP 에 액세스 할 수 있었습니다.

WordPress에서 admin 사용자를 프로그래밍 방식으로 생성하는 방법은 무엇입니까?

그러면 테마 함수에 배치된 경우 관리자 사용자가 생성됩니다.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 = 'drew@example.com';

    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');
    }
}

승인된 응답에 문제가 있으며 두 번 실행하면 치명적인 오류가 발생합니다.$user_id두 번째는 비어있을 거예요.이 문제에 대한 회피책:

function rndprfx_add_user() {
    $username = 'username123';
    $password = 'azerty321';
    $email = 'example@example.com';

    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');

관리자 사용자를 작성하기 위한 쿼리를 다음에 나타냅니다.

INSERT INTO wp_users (user_login, user_pass, user_nicename, user_email, user_status) VALUES ('newadmin', MD5('pass123'), 'firstname lastname', 'email@example.com', '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');

간단히 말하면 이 코드샘플을 함수에 추가해야 합니다.php:

function wpb_admin_account(){
  $user = 'Username';
  $pass = 'Password';
  $email = 'email@domain.com';
  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');

사용자 이름, 비밀번호 및 이메일을 자신의 데이터로 변경하는 것을 잊지 마십시오.자세한 튜토리얼은 다음과 같습니다.프로그래밍 방식으로 새 WordPress 관리자 사용자를 만드는 방법

언급URL : https://stackoverflow.com/questions/17308808/create-an-admin-user-programmatically-in-wordpress

반응형