Как при активации плагина создать новую таблицу в базе данных 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');
     

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

    Ваш ответ

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