描述
使用函数 update_option()
更新一个“名称/值”对到数据表中, $option
(选项名称) 在使用 SQL INSERT 语句插入数据库之前将被$wpdb->prepare
转义,而选项值不会被转义,插入数据库之前,选项值应该被净化。
此函数可以用来代替 add_option
使用,但是功能上没有那么灵活,update_option
将检查选项是否已经存在,如果不存在,该函数将会使用 add_option('option_name', 'option_value')
,添加,除非你需要指定add_option()
的参数,update_option()
可以同时用来添加和更新选项。
使用方法
<?php update_option( $option, $new_value, $autoload ); ?>
参数
参数 | 数据类型 | 是否必需 | 描述 | 默认值 |
---|---|---|---|---|
$option | 字符串 | 是 | 需要更新的选项名称 | 无 |
$newvalue | 字符串 | 是 | 选项的新值 | 无 |
$autoload | 字符串 | 否 | 是否在WordPress初始化时加载选项 | null |
对于现有的选项,如果 `$value` 也改变了, `$autoload`只能使用 `update_option()` 修改,接受’yes’ 或 true 为启用,’no’ 或 false为禁用,对于尚不存在的选项,默认的值为’yes’。 默认: null
返回值
(boolean) 如果选项值已改变,返回True,如果为改变或者更新失败,返回False
使用示例
更新WordPress默认选项
设置默认评论状态为 ‘closed’:
update_option( 'default_comment_status', 'closed' );
通常,这个选项通过“设置>讨论”面板中设置,在选项参考中查看WordPress核心使用的全部选项列表。
更新自定义选项
我么也可以添加自定义选项,需要更新选项 ‘myhack_extraction_length’ 的值为255,我们可以这样做:
update_option( 'myhack_extraction_length', 255 );
如果选项不存在,上面的代码将自动添加选项。如果我们不需要此选项自动加载,我们必须通过 add_option() 自行添加,在这个例子中,如果选项已存在,更新选项,如果不存在,添加选项并设置 $autoload 为 “no”。
$option_name = 'myhack_extraction_length';
$new_value = '255';
if ( get_option( $option_name ) !== false ) {
// 选项已存在,直接更新
update_option( $option_name, $new_value );
} else {
// 选项尚不存在,添加选项,并设置 $autoload 为 'no'
$deprecated = null;
$autoload = 'no';
add_option( $option_name, $new_value, $deprecated, $autoload );
}