是否更改主题函数文件中的插件选项?

时间:2014-07-30 作者:GreatBlakes

我正在制作一个将用于开发项目的Wordpress主题的起点。在这个主题中,我将自动化每个项目上使用的常见插件安装。我已经能够使用update_options() 作用

我现在想做的是以同样的方式更新插件选项,但我没有取得任何成功。

例如,我使用Search Everything作为一个典型的插件。我有自己的搜索关键字highlighter,所以我想确保搜索词突出显示的插件设置始终处于关闭状态(以免干扰)。以下是我正在使用的代码:

add_action(\'admin_init\', \'nebula_plugin_force_settings\');
function nebula_plugin_force_settings(){
    if ( file_exists(WP_PLUGIN_DIR . \'/search-everything\') ) {
        //Tried the option slug in the array():
        update_option(\'se_use_highlight\'], false);

        //Tried hard-coding the array and key:
        update_option(\'se_options["se_use_highlight"]\', false);

        //Tried setting the array as a variable:
        $se_options = get_option(\'se_options\');            
        update_option($se_options[\'se_use_highlight\'], false);
    }
}
这些尝试都没有成功。我感觉自己越来越近了,因为当我var_dump() 阵列,或回显get_option() 我可以看到设置,但我无法更新该设置。有什么想法吗?

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

作为参考,您可能需要阅读update_option 文档您传递的参数完全无关。然而,您的第三种技术是最接近的,您必须更新update_option 打电话,而不仅仅是你想要的一个选项。这是因为插件是如何将其选项存储为数组而不是单个选项的。

update_option 接受两个参数,第一个是要更新的选项的名称(在本例中se_options) 作为一个字符串,第二个是选项值,这几乎可以是任何内容,它将在存储时由WP转换为字符串(序列化)。Search Everything插件发送一个数组,其中包含所有选项设置,您也需要这样做。

function nebula_plugin_force_settings() {
    $se_options = get_option( \'se_options\' );
    $se_options[\'se_use_highlight\'] = false;
    update_option( \'se_options\', $se_options );
}

结束

相关推荐

WordPress不考虑角色的Add_Options_Page()函数

我是WordPress插件开发的新手,我一直在想为什么WordPress的功能add_options_page() 不接受角色。这是我的代码,不起作用add_action(\'admin_menu\', \'ct_admin_settings_page\'); function ct_admin_settings_page() { add_options_page( \'CT Settings\', \'CT Settings