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


Wordpress PHP - How to update plugin setting value in main file

这是从我的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 一个错误。是否有在安装过程中运行脚本和更新数据库的最佳方法?

提前谢谢。

您需要使用 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');

*更新
由于您似乎想要管理自己的多个选项,那么我建议使用一个简单的"实用程序"函数,如下所示:

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');