Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress PHP-如何更新主文件中的插件设置值_Php_Variables_Wordpress - Fatal编程技术网

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

Wordpress PHP-如何更新主文件中的插件设置值,php,variables,wordpress,Php,Variables,Wordpress,这是我的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'); 目前,安装已成功,但未保存“我的站点url”选项。我这样假设是因为此时我使用

这是我的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');
目前,安装已成功,但未保存“我的站点url”选项。我这样假设是因为此时我使用$my_options数组的方式没有任何意义。它应将此数据保存到wp_选项表中

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


提前感谢。

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

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');
然后,当您需要该值时,可以使用:

*更新
由于您似乎希望管理自己的多个选项,因此我建议使用一个简单的“实用”功能,如下所示:

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');
}
以及适当的getter函数:

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

谢谢,更新选项看起来正是我需要使用的!您知道如何使用此代码指定要更新的特定选项吗?已尝试此操作,但当前失败:更新_选项($my_options[my_site_url],$my_site_url);我已经提供了一个更新的答案给你这正是。(我经常用这种东西)。
$my_site_url = get_my_option('my_site_url');