संक्षेप में, हाँ - $wpdb
वर्ग। अधिक जानकारी के लिए कोडेक्स देखें ।
जब भी आप एक कस्टम टेबल (या किसी भी टेबल, वास्तव में) के साथ बातचीत करते हैं, तो आपको गुजरना चाहिए $wpdb
- विशेष रूप से सुनिश्चित करें कि आप उस prepare
विधि से परिचित हैं जो प्रश्नों से बचने और इंजेक्शन को रोकने में मदद कर सकती है।
आपको पहले से ही परिचित होना चाहिए, क्योंकि आपको तालिका बनाने के लिए इसका उपयोग करना चाहिए। अपने स्थापित हुक पर आपको कुछ इस तरह होना चाहिए:
$charset_collate = '';
if ( ! empty($wpdb->charset) )
$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
if ( ! empty($wpdb->collate) )
$charset_collate .= " COLLATE $wpdb->collate";
//Create custom table
$sql_custom_table ="CREATE TABLE {$wpdb->prefix}my_table (
id bigint(20) unsigned NOT NULL auto_increment,
column_a varchar(255) default NULL,
column_b varchar(255) default NULL,
PRIMARY KEY (id)
) $charset_collate; ";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql_custom_table);
यह कोड वास्तव में चलाया जाता है जब भी प्लग-इन सक्रिय होता है (यानी अभी स्थापित नहीं है)। तो यह तब चलेगा जब कोई प्लग-इन को अपने आप अपडेट कर देगा । नोट: यदि वे प्लग-इन को मैन्युअल रूप से बदलकर अपग्रेड करते हैं - तो यह नहीं होगा - इसलिए admin_init
जब आपका प्लग-इन अपग्रेड किया जाएगा तो आपको उपरोक्त कोड को ट्रिगर करना होगा (विकल्प तालिका में स्टोर संस्करण संख्या, वर्तमान संस्करण के खिलाफ जांच करें) ।
अब आप सामान्य रूप से नहीं चाहेंगे कि CREATE TABLE
SQL कमांड हर बार जब आप प्लग-इन को अपडेट करते हैं तो यह चालू हो dBDelta()
।
उपरोक्त कमांड चलाने से पहले - यह जाँचता है कि क्या तालिका मौजूद है। क्या अधिक है, यह कॉलम प्रकारों की जांच करता है। इसलिए यदि तालिका मौजूद नहीं है, तो वह इसे बनाता है, यदि यह करता है, लेकिन कुछ स्तंभ प्रकारों ने इसे बदल दिया है, और यदि कोई स्तंभ मौजूद नहीं है - तो यह इसे जोड़ता है।
दुर्भाग्य से - यदि आप ऊपर से एक कॉलम निकालते हैं, तो यह कॉलम को स्वचालित रूप से नहीं हटाता है। स्तंभों / तालिकाओं को निकालने के लिए आपको विशेष रूप से DROP
उन्हें (आपके द्वारा करने से पहले मौजूद होने की जाँच करना) चाहिए।