Как при активации плагина создать новую таблицу в базе данных wordpress?
Решено
Я пишу свой плагина для вордпресс, в котором будет использоваться своя таблица в базе данных. Скажите если ли какие либо встроенные в wp функции для создания новой таблицы в базе данных? Так же интересен вопрос как добавить таблицу автоматически после того как пользователь вордпресс активирует плагин. При этом хотелось бы что бы таблица создавалась 1 раз.
1 Ответ(ы)
Ответ
Функция создания новой таблицы в базе
function create_table() { global $wpdb; // задаем название таблицы $table_name = $wpdb->get_blog_prefix() . 'onwp_info'; // проверяем есть ли в базе таблица с таким же именем, если нет - создаем. if ($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) { // устанавливаем кодировку $charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset} COLLATE {$wpdb->collate}"; // подключаем файл нужный для работы с bd require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); // запрос на создание $sql = "CREATE TABLE {$table_name} ( id int(11) unsigned NOT NULL auto_increment, name varchar(255) NOT NULL default '', price int(11) unsigned NOT NULL default '0', PRIMARY KEY (id), KEY price (price) ) {$charset_collate};"; // Создать таблицу. dbDelta($sql); } }
При активации плагина выполним функцию выше:
// создание таблицы в базе данных при активации плагина(если еще не создана). register_activation_hook(__FILE__, 'create_table');