正在从数据库中删除插件设置

时间:2012-04-13 作者:Nick

我正在开发一个有几个选项的小插件。为此,我使用以下代码:

add_action(\'admin_init\', array($this, \'pa_register_settings\'));
function pa_register_settings()
{
    register_setting(\'pa_options\', \'pa_settings\');
    register_setting(\'pa_options\', \'pa_metrics\');
    register_setting(\'pa_options\', \'pa_token\');
}
我想知道卸载插件时,从数据库中删除这些设置的正确方法是什么?

1 个回复
SO网友:Bainternet

WordPress有一个名为register_deactivation_hook 它注册了一个插件函数,以便在插件停用时运行,因此:

register_deactivation_hook( __FILE__, \'myplugin_deactivate\' );
function myplugin_deactivate(){
   //delete plugins option here ex:
   delete_option(\'pa_options\');
}
Update:就像小马提到的一个技巧一样,有时用户停用插件,当他们重新激活插件时,如果你使用这种方法,他们将失去所有设置。

因此,更好的方法是在插件的管理面板中创建一个卸载选项并提交,只有这样,您才能从数据库中删除这些选项,并使用deactivate_plugins( \'/plugin-folder/plugin-name.php\' );

结束

相关推荐

__FILE__ in WordPress plugins

我正在使用Sidebar Generator 在我所有的主题中。该插件在“plugins”目录下正常工作,但我想以某种方式将其嵌入到我的主题中,因此它不会显示在已安装的插件列表中。我刚刚复制了sidebar\\u生成器。php(幸运的是,整个代码都在一个文件中)到mytheme/插件,并将其包含在函数中。phprequire_once (MY_PLUGINS . \'/sidebar_generator.php\'); 现在,它适用于所有其他插件,但不适用于这个插件!这样,当我点击“侧栏”时