添加代码到仅在第一次激活时执行的插件?

时间:2010-04-22 19:27:41

标签: php wordpress plugins

是否可以将代码包装在仅在第一次激活插件时执行的特殊函数中?

我需要在插件激活时运行一些数据库代码,但之后代码不需要再次运行。

3 个答案:

答案 0 :(得分:12)

是的,这是可能的。您可以注册一个插件激活挂钩,只有在插件被激活时才会运行。我为一些示例代码编写了一个旧插件:

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
     }
}

答案 1 :(得分:3)

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

  

函数register_activation_hook   (在WordPress 2.0中引入)   注册要运行的插件函数   当插件被激活时。

答案 2 :(得分:1)

记住,一旦你的插件被你自己/用户停用,你可以删除你存储在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");
    }
    ?>
相关问题