插件更新的取消注册_设置()与删除_选项()

时间:2021-04-02 作者:Iisrael

我有一个插件(我的第一个主要插件),我有一些注册的设置,不再需要了。我希望从数据库中删除这些旧设置,以整理内容,并且不会将用户与选项表中的新设置混淆。

我这样设置它们:

register_setting(\'general_section\', \'nav_option_one\');
register_setting(\'general_section\', \'nav_option_two\');
当我试图用unregister_setting() 似乎什么都没有发生(至少在DB上):

unregister_setting(\'general_section\', \'nav_option_one\');
unregister_setting(\'general_section\', \'nav_option_two\');
那我什么时候delete_option() 它按预期从数据库中删除了该行。然而,我担心我错过了一些东西。

请告诉我从数据库中删除旧选项设置的最佳方法是什么,以及使用unregister_setting() 是否已使用?我试着查找,但没有任何帮助:https://developer.wordpress.org/reference/functions/unregister_setting/

1 个回复
最合适的回答,由SO网友:Pat J 整理而成

register_setting() / unregister_setting() 用于让WordPress知道它应该允许/删除给定的设置名称来设置;允许的选项“;列表等。您告诉WordPress设置my_name 将存在,并且允许Settings API.

add_option() / delete_option() 实际执行添加/删除my_name 从数据库设置(或选项)。

如果您更改了插件设置数据的方式,则可能需要使用delete_option() 删除已存储的数据。但是,如果要注册不同的设置,则不需要使用unregister_setting() 对于旧的设置,因为允许的设置列表未存储在数据库中。

相关推荐

Functions.php上未定义$_GET和&_REQUEST索引

我最近尝试学习为我的自定义主题创建一个主题选项页面,这是按照stackoverflow和其他资源的教程进行的。但脚本显示错误if ($_GET[\'page\'] == basename(__FILE__)) { if (\'save\' == $_REQUEST[\'formaction\']) { foreach ($options as $value) { if( isset( $_REQUEST[ $value[\'id\']