函数原型:
update_option( string $option, mixed $value, string|bool $autoload = null ): bool
更新已添加的选项的值。
您不需要序列化值。如果该值需要序列化,则在将其插入数据库之前将对其进行序列化。
请记住,资源不能作为选项进行序列化或添加。
如果该选项不存在,则会创建该选项。
此功能设计用于在有或没有登录用户的情况下工作。在安全性方面,插件开发人员应该在更新任何选项之前检查当前用户的功能。
参数说明:
$option,要更新的选项的名称。应为非SQL转义。
$value,选项值。如果不是标量,则必须是可序列化的。应为非SQL转义。
$autoload,是否在WordPress启动时加载该选项。对于现有选项,如果$value也发生了更改,则只能使用update_option()更新$autoload。
接受'yes'|true可启用,接受'no'|false可禁用。对于不存在的选项,默认值为“yes”。
函数源码:
function update_option( $option, $value, $autoload = null ) {
global $wpdb;
if ( is_scalar( $option ) ) {
$option = trim( $option );
}
if ( empty( $option ) ) {
return false;
}
$deprecated_keys = array(
'blacklist_keys' => 'disallowed_keys',
'comment_whitelist' => 'comment_previously_approved',
);
if ( isset( $deprecated_keys[ $option ] ) && ! wp_installing() ) {
_deprecated_argument(
__FUNCTION__,
'5.5.0',
sprintf(
/* translators: 1: Deprecated option key, 2: New option key. */
__( 'The "%1$s" option key has been renamed to "%2$s".' ),
$option,
$deprecated_keys[ $option ]
)
);
return update_option( $deprecated_keys[ $option ], $value, $autoload );
}
wp_protect_special_option( $option );
if ( is_object( $value ) ) {
$value = clone $value;
}
$value = sanitize_option( $option, $value );
$old_value = get_option( $option );
$value = apply_filters( "pre_update_option_{$option}", $value, $old_value, $option );
$value = apply_filters( 'pre_update_option', $value, $option, $old_value );
if ( $value === $old_value || maybe_serialize( $value ) === maybe_serialize( $old_value ) ) {
return false;
}
/** This filter is documented in wp-includes/option.php */
if ( apply_filters( "default_option_{$option}", false, $option, false ) === $old_value ) {
// Default setting for new options is 'yes'.
if ( null === $autoload ) {
$autoload = 'yes';
}
return add_option( $option, $value, '', $autoload );
}
$serialized_value = maybe_serialize( $value );
do_action( 'update_option', $option, $old_value, $value );
$update_args = array(
'option_value' => $serialized_value,
);
if ( null !== $autoload ) {
$update_args['autoload'] = ( 'no' === $autoload || false === $autoload ) ? 'no' : 'yes';
}
$result = $wpdb->update( $wpdb->options, $update_args, array( 'option_name' => $option ) );
if ( ! $result ) {
return false;
}
$notoptions = wp_cache_get( 'notoptions', 'options' );
if ( is_array( $notoptions ) && isset( $notoptions[ $option ] ) ) {
unset( $notoptions[ $option ] );
wp_cache_set( 'notoptions', $notoptions, 'options' );
}
if ( ! wp_installing() ) {
$alloptions = wp_load_alloptions( true );
if ( isset( $alloptions[ $option ] ) ) {
$alloptions[ $option ] = $serialized_value;
wp_cache_set( 'alloptions', $alloptions, 'options' );
} else {
wp_cache_set( $option, $serialized_value, 'options' );
}
}
do_action( "update_option_{$option}", $old_value, $value, $option );
do_action( 'updated_option', $option, $old_value, $value );
return true;
}
包含钩子:
apply_filters( "default_option_{$option}", mixed $default_value, string $option, bool $passed_default )
apply_filters( 'pre_update_option', mixed $value, string $option, mixed $old_value )
apply_filters( "pre_update_option_{$option}", mixed $value, mixed $old_value, string $option )
do_action( 'updated_option', string $option, mixed $old_value, mixed $value )
do_action( 'update_option', string $option, mixed $old_value, mixed $value )
do_action( "update_option_{$option}", mixed $old_value, mixed $value, string $option )
使用举例:
function my_switch_theme() {
update_option( 'thumbnail_size_w', 320 );
update_option( 'thumbnail_size_h', 180 );
}
add_action('switch_theme', 'my_switch_theme');
-
WordPress函数:esc_attr__ 转义属性及翻译WordPress函数:esc_attr__ 转义属性及翻译
-
WordPress函数:esc_attr_e 属性转义、翻译、显示WordPress函数:esc_attr_e 属性转义、翻译、显示
-
WordPress函数:esc_attr_x 带上下文的转义属性,翻译显示WordPress函数:esc_attr_x 带上下文的转义属性,翻译显示
-
WP Multilang WordPress翻译插件WP Multilang插件的主要功能是提供多语言支持,使用户能够创建多语言版本的网站,满足不同语言用户的需求。
-
WordPress公司官网主题在众多的WordPress企业官网主题中,追格公司推出了多款关于WordPress企业官网主题作品。我们之前已经分享过一些关于追格的企业官网主题,包括收费和免费版本,这些主题都因其独特的设计和出色的功能而深受用户喜爱。
-
WordPress必备:使用wp_get_theme()函数获取当前主题详情在WordPress中,wp_get_theme() 函数用于获取当前启用的主题或指定主题的信息。这个函数返回一个 WP_Theme 对象,该对象包含了主题的详细信息,如主题名称、版本、模板目录、样式表目录等。
暂无评论,抢个沙发...