Как при активации плагина создать новую таблицу в базе данных wordpress?

Решено

Я пишу свой плагина для вордпресс, в котором будет использоваться своя таблица в базе данных. Скажите если ли какие либо встроенные в wp функции для создания новой таблицы в базе данных? Так же интересен вопрос как добавить таблицу автоматически после того как пользователь вордпресс активирует плагин. При этом  хотелось бы что бы таблица создавалась 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');
 

Добавить Комментарий

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.