Wordpress PHP - 如何更新主文件中的插件设置值

时间:2016-01-27 03:42:05

标签: php wordpress variables wordpress-plugin

这是来自我的Wordpress插件,在主文件中:

function my_plugin_install() {

    $my_site_url = get_site_url();

    $my_options['my_site_url'] = $my_site_url;

    // Save

}

register_activation_hook(__FILE__, 'my_plugin_install');

目前,安装成功,但是' my_site_url'选项未保存。我之所以这么做是因为我此时使用$ my_options数组的方式并不意味着什么。它应该将此数据保存到wp_options表。

我似乎无法保存,甚至找不到使用" echo"来测试它的方法。在安装过程中给Wordpress一个错误。在安装过程中是否有运行脚本和更新数据库的最佳方法?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您需要使用WordPress功能update_option来保存选项值:

function my_plugin_install() {
    $my_site_url = get_site_url();
    update_option('my_site_url', $my_site_url);
}

register_activation_hook(__FILE__, 'my_plugin_install');

然后,当您需要该值时,可以使用get_option

$my_site_url = get_option('my_site_url');

<强> * UPDATE
由于您似乎想要管理多个您自己的选项,因此我建议使用简单的&#34;实用程序&#34;功能,如:

function update_my_option($key, $value) {  
    // Load all of the option values from wp_options
    $all_options = get_option('my_options');
    // Update just the one option you passed in
    $all_options[$key] = $value;
    // Save to wp_options
    update_option('my_options');
}

并且,适当的吸气功能:

function get_my_option($key, $default = NULL) {
    // Load all of your options from wp_options
    $all_options = get_option('my_options');
    // Return just the one option you are asking for
    return (isset($all_options[$key])) ? $all_options[$key] : $default;
}

然后,您不必直接致电update_option,而是调用此功能,如下图所示:

function my_plugin_install() {
    $my_site_url = get_site_url();
    update_my_option('my_site_url', $my_site_url);
}

并且,获得您的一个选择:

$my_site_url = get_my_option('my_site_url');