2015-06-03 3 views
-5

Я новичок в wordpress. Я создал собственный настраиваемый плагин. Теперь я хочу, чтобы когда этот плагин был установлен в то время, некоторые таблицы должны быть перенесены в базу данных, необходимую этому плагину.Как сделать миграцию базы данных в Wordpress?

Любая помощь будет полезна. Спасибо.

ответ

0

Вы можете зарегистрировать активацию hook. Это сработает, когда ваш плагин активирован и сделает то, что вы хотите. В сочетании с dbDelta вы можете выполнить создание таблицы (или изменения, если новая версия требует разного расположения вашей таблицы).

Рабочий пример provied:

<?php 

    global $jal_db_version; 
    $jal_db_version = '1.0'; 

    function jal_install() { 
     global $wpdb; 
     global $jal_db_version; 

     $table_name = $wpdb->prefix . 'liveshoutbox'; 

     $charset_collate = $wpdb->get_charset_collate(); 

     $sql = "CREATE TABLE $table_name (
      id mediumint(9) NOT NULL AUTO_INCREMENT, 
      time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, 
      name tinytext NOT NULL, 
      text text NOT NULL, 
      url varchar(55) DEFAULT '' NOT NULL, 
      UNIQUE KEY id (id) 
     ) $charset_collate;"; 

     require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); 
     dbDelta($sql); 

     add_option('jal_db_version', $jal_db_version); 
    } 

    function jal_install_data() { 
     global $wpdb; 

     $welcome_name = 'Mr. WordPress'; 
     $welcome_text = 'Congratulations, you just completed the installation!'; 

     $table_name = $wpdb->prefix . 'liveshoutbox'; 

     $wpdb->insert( 
      $table_name, 
      array( 
       'time' => current_time('mysql'), 
       'name' => $welcome_name, 
       'text' => $welcome_text, 
      ) 
     ); 
    } 

    register_activation_hook(__FILE__, 'jal_install'); 
    register_activation_hook(__FILE__, 'jal_install_data'); 

?> 
+0

, в какой именно файл я должен добавить этот код. В файле my_plugin_name.php или другом файле. –

+0

Его большой. большое спасибо –

Смежные вопросы