2012-09-25 4 views
-1

모든 플러그인이 작동하지만 사용자 정의 플러그인 $ wpdb에서 wp_create_user, wp_insert_user가 작동하지 않습니다. 예를 들어 작동하지 않습니다.어떻게 데이터베이스에 대한 액세스 WordPress에?

$user_id = 1; 
$website = 'http://wordpress.org'; 
wp_insert_user(array ('ID' => $user_id, 'user_url' => $website)) ; 


global $wpdb; 
if(!isset($wpdb)) { 
    require_once('../../../wp-config.php'); 
    //require_once('../../../wp-load.php'); 
    require_once('../../../wp-includes/wp-db.php'); 
} 
    $insertUser = "INSERT INTO $wpdb->users (user_login, user_pass, user_email, user_url) VALUES ('123', '123',  '[email protected]', 'lasad.com')"; 
    $wpdb->query($insertUser); 
+1

** 암호를 일반 텍스트 **에 저장하지 마십시오. – SLaks

+1

그리고 오류 메시지를 제공하십시오 –

+0

@SLaks 주석 외에도 암호를 이스케이프하고 해시합니다. – weltschmerz

답변

0

사용자 테이블에 대한 참조가 잘못되었습니다.

글로벌 $ wpdb 선언 아래에 있습니다.

$wpdb->wp_users 

당신은 어떤 워드 프레스이를 사용할 수 있습니다

대신 쿼리 사용 기준 $ wpdb-> 사용자를 사용하여 SQL에서 다음이

$wpdb->wp_users = 'wp_users' 

및 시도 테이블을 올바르게 이름 지정했는지 확인하십시오. phpmyadmin의 테이블 이름을 다시 확인하십시오.

그러나이 경우에는 삽입하지 말고 wordpre ss 함수 http://codex.wordpress.org/Function_Reference/wp_create_user 예제를 사용해보십시오. 여기에는 새 사용자를 입력하기 전에 수행해야 할 필수 검사 (예 : 이미 존재하는 사용자 이름/중복 된 사용자 이름)가 들어 있습니다. 그리고 User_Id 번호와 같은 것을 자동으로 설정하고 일반 텍스트로 표시되지 않도록 암호를 무작위로 지정합니다.

+0

시도해 보았지만 결과가 없습니다 ... http://codex.wordpress.org/Function_Reference/wp_create_user 예제도 작동하지 않습니다. 데이터베이스에 액세스 할 때 문제가 있다고 생각합니다 ... – Rokk1stas

+0

흠,로드 및 구성 파일을 올바르게로드하지 않았을 수 있습니다. 함수를 실제로 호출하기 전에 페이지 상단에 이런 것을 추가해보십시오. 파일의 위치에 따라이 코드에서 루트 디렉토리를 조정해야 할 수도 있습니다. $ root = dirname (dirname (dirname (__ FILE__))))); if (file_exists ($ root. '/ wp-load.php')) { require_once ($ root. '/ wp-load.php'); } else { require_once ($ root. '/ wp-config.php'); } – Del

관련 문제