2011-02-01 3 views
6
내가 사용 플러그인을 작성하고 내 데이터베이스에서 사용자 지정 테이블에서 일부 데이터를 요청하기 위해 노력하고있어

:워드 프레스 wpdb 정의되지 않은 변수

$current_text = $wpdb->get_results("SELECT text FROM addtext ORDER BY id DESC LIMIT 1"); 

을하지만, 바로 오류 정의되지 않은 변수를 얻을 :

어떤 생각 wpdb을 왜 이것이 작동하지 않는 걸까요? 필자는 문서를 읽고 구글을 닦았다. 운이 없다. 아직 꽤 WP 플러그인에 새로운 그래서 아마 뭔가 분명하다.

감사합니다.

답변

25

내 기능에 global $wpdb;을 사용해야했습니다.

+5

2.5 년 후 귀하의 답변은 저를 도왔습니다. 감사! 3 년 후 – Branndon

+3

그리고 당신의 대답도 나를 도왔습니다. 감사! –

+2

4 년 후 귀하의 답변에 다시 그랬습니다! 감사! – user1758777

2

하나의 유의 사항 : global을 클래스에 사용할 수 없으며, 물론 을 사용하여 객체를 작동 시키려면 global을 사용해야합니다. 당신은 클래스 내에 global즉시을 사용할 수는 없지만

, 당신은 클래스 내부의 함수 내부 $wpdbglobal로 선언해야하며,이 작업을 수행합니다.

클래스 내부에 직접 사용할 수 없습니다

class wpdb_test { 
     global $wpdb; // can't use global as a direct 'child' of a class 
     public function __construct() { 
      ... 
     } 
} 

global 때문에이 당신에게 오류를 제공합니다. 마찬가지로, 내부에있는 $wpdb을 참조하기 만하면이라는 객체는 어떤 객체인지 알 수 없기 때문에 오류가 발생합니다. $wpdb입니다. 클래스 내부에있는 함수 안에서 $wpdbglobal으로 선언해야합니다.

class wpdb_test { 
     public $variable_name; 
     public function __construct() { 
      global $wpdb; // safe to use because it's inside a function 
      ... 
     } 
} 

을 ... 그리고 $wpdb 때문에 내부 함수 당신이 그것을 사용할 수 있습니다 클래스 내에 global를 선언하고있다 : 이것은 잘 작동합니다.

관련 문제