Добавление кода к плагину, который только выполняет в первый раз его активированный?

Действительно ли возможно перенести код в специальную функцию, которая только выполняется в первый раз, когда плагин активируется?

У меня есть некоторый код базы данных, я должен работать на сменной активации, но код не должен работать снова после этого.

8
задан Scott B 22 April 2010 в 19:27
поделиться

3 ответа

Да, это возможно. Вы можете зарегистрировать ловушку активации плагина, которая запускается только при активации плагина. Я выкопал старый плагин, который написал для примера кода:

class MyPlugin
{
    //constructor for MyPlugin object
    function MyPlugin() {
        register_activation_hook(__FILE__,array(&$this, 'activate'));
    }

    function activate()
    {
        //initialize some stored plugin stuff
        if (get_option('myplugin_data_1') == '') {
            update_option('myplugin_data_1',array());
        }
        update_option('myplugin_activated',time());
        //etc
     }
}
12
ответ дан 5 December 2019 в 10:40
поделиться

http://codex.wordpress.org/Function_Reference/register_activation_hook

Функция register_activation_hook (введена в WordPress 2.0) регистрирует запускаемую функцию плагина когда плагин активирован.

3
ответ дан 5 December 2019 в 10:40
поделиться

помните также, как только ваш плагин деактивируется вами / пользователем, вы можете удалить любые параметры таблиц, которые вы сохранили в базе данных wp, я недавно написал небольшой пост об этом, говоря о функции wp register_deactivation_hook () ..

http://www.martin-gardner.co.uk/how-to-get-your-wordpress-plugin-to-drop-table-from-the-database/

    <?php
    register_deactivation_hook( __FILE__, ‘pluginUninstall’ );

    function pluginUninstall() {
      global $wpdb;
      $thetable = $wpdb->prefix."your_table_name";
      //Delete any options that's stored also?
      //delete_option('wp_yourplugin_version');
      $wpdb->query("DROP TABLE IF EXISTS $thetable");
    }
    ?>
1
ответ дан 5 December 2019 в 10:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: