2011-02-01 17 views
6

मैं एक प्लगइन लिख रहा हूँ और मेरी डेटाबेस में एक कस्टम तालिका से कुछ डेटा का अनुरोध करने की कोशिश कर का उपयोग करते हुए:Wordpress wpdb अपरिभाषित चर

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

लेकिन सिर्फ त्रुटि अपरिभाषित चर मिलती है: wpdb

किसी भी विचार यह क्यों काम नहीं कर रहा है? मैंने दस्तावेज़ों का पालन किया है और बिना किसी किस्मत के Google को खराब किया है। अभी भी कुछ नया WP प्लगइन के लिए बहुत नया है।

धन्यवाद!

उत्तर

25

मुझे अपने फ़ंक्शन में global $wpdb; का उपयोग करने की आवश्यकता है।

+5

2.5 साल बाद, और आपके उत्तर ने मेरी मदद की। धन्यवाद! – Branndon

+3

3 साल बाद, और आपके उत्तर ने भी मेरी मदद की। धन्यवाद! –

+2

4 साल बाद, और आपके जवाब ने फिर से किया! धन्यवाद! – user1758777

2

एक नोट जोड़ने के लिए: आप कक्षा के अंदर global का उपयोग नहीं कर सकते हैं, और निश्चित रूप से $wpdb का उपयोग करके अपनी ऑब्जेक्ट्स को काम करने के लिए आपको 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 क्या है। आपको $wpdb को global के रूप में अपनी कक्षा के अंदर मौजूद फ़ंक्शन के अंदर घोषित करना होगा।

उदा। यह सिर्फ ठीक काम करता है:

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

... और क्योंकि $wpdb एक समारोह अंदर एक वर्ग आप इसका इस्तेमाल करने में सक्षम हैं के अंदर global घोषित किया गया है।

संबंधित मुद्दे