Singkatnya, ya - $wpdb
kelas. Lihat Codex untuk informasi lebih lanjut.
Setiap kali Anda berinteraksi dengan tabel khusus (atau tabel apa saja, sebenarnya) Anda harus melaluinya $wpdb
- khususnya pastikan Anda terbiasa dengan prepare
metode yang dapat membantu lolos dari kueri dan mencegah injeksi.
Anda harus sudah terbiasa, karena Anda harus menggunakannya untuk membuat tabel. Pada kait instal Anda, Anda harus memiliki sesuatu seperti:
$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);
Kode ini sebenarnya dijalankan setiap kali plug-in diaktifkan (tidak hanya diinstal). Jadi itu akan berjalan ketika seseorang memperbarui plug-in secara otomatis . Catatan: Jika mereka meningkatkan dengan mengganti plug-in secara manual - maka itu tidak akan - jadi Anda harus memicu kode di atas admin_init
ketika plug-in Anda ditingkatkan (nomor versi toko dalam tabel opsi, periksa versi saat ini) .
Sekarang Anda biasanya tidak ingin CREATE TABLE
perintah SQL dijalankan setiap kali Anda memperbarui plug-in - ini adalah tempatnya dBDelta()
.
Sebelum menjalankan perintah di atas - memeriksa apakah tabel ada. Terlebih lagi, ini memeriksa jenis kolom. Jadi jika tabel tidak ada, itu akan membuatnya, jika itu ada, tetapi beberapa jenis kolom telah mengubahnya memperbaruinya, dan jika sebuah kolom tidak ada - ia menambahkannya.
Sayangnya - jika Anda menghapus kolom dari yang di atas, itu tidak secara otomatis menghapus kolom. Untuk menghapus kolom / tabel Anda perlu secara khusus DROP
(memeriksa mereka ada sebelum Anda melakukannya).