函数原型:
set_transient( string $transient, mixed $value, int $expiration ): bool
设置临时值。
您不需要序列化值。如果需要序列化该值,则会在设置该值之前对其进行序列化。
参数说明:
$transient,临时名称。应为非SQL转义。长度必须小于等于172个字符。
$value,临时值。如果不是标量,则必须是可序列化的,应为非SQL转义。
$expiration,过期时间。
对于参数$transient,如果未启用memcached,则名称的长度应小于或等于172个字符,因为WordPress将在选项表中为您的名称加上“_transient_”或“_translient_timeout_”前缀(取决于它是否过期)。较长的密钥名称将无声地失败。参见Trac#15058。
如果存在瞬态,此函数将更新瞬态的到期时间。
注意:永远不会过期的瞬态是自动加载的,而有过期时间的瞬态不会自动加载。当添加可能不需要在每个页面上都使用的瞬态,因此不需要自动加载,从而影响页面性能时,请考虑这一点。
WordPress提供了一些以秒为单位指定时间的常量。请参见Transients_API#Using_Time_Constants,而不是将整数相乘。
由于wp_options表中的数据库架构(option_name:varchar(191)),临时密钥名称限制为191个字符。
在4.4之前的WordPress版本中,set_transient中的长度限制为45(现在为172),数据库中的长度为64(现在为191)。
函数源码:
function set_transient( $transient, $value, $expiration = 0 ) {
$expiration = (int) $expiration;
$value = apply_filters( "pre_set_transient_{$transient}", $value, $expiration, $transient );
$expiration = apply_filters( "expiration_of_transient_{$transient}", $expiration, $value, $transient );
if ( wp_using_ext_object_cache() || wp_installing() ) {
$result = wp_cache_set( $transient, $value, 'transient', $expiration );
} else {
$transient_timeout = '_transient_timeout_' . $transient;
$transient_option = '_transient_' . $transient;
if ( false === get_option( $transient_option ) ) {
$autoload = 'yes';
if ( $expiration ) {
$autoload = 'no';
add_option( $transient_timeout, time() + $expiration, '', 'no' );
}
$result = add_option( $transient_option, $value, '', $autoload );
} else {
$update = true;
if ( $expiration ) {
if ( false === get_option( $transient_timeout ) ) {
delete_option( $transient_option );
add_option( $transient_timeout, time() + $expiration, '', 'no' );
$result = add_option( $transient_option, $value, '', 'no' );
$update = false;
} else {
update_option( $transient_timeout, time() + $expiration );
}
}
if ( $update ) {
$result = update_option( $transient_option, $value );
}
}
}
if ( $result ) {
do_action( "set_transient_{$transient}", $value, $expiration, $transient );
do_action( 'setted_transient', $transient, $value, $expiration );
}
return $result;
}
包含钩子:
apply_filters( "expiration_of_transient_{$transient}", int $expiration, mixed $value, string $transient )
apply_filters( "pre_set_transient_{$transient}", mixed $value, int $expiration, string $transient )
do_action( 'setted_transient', string $transient, mixed $value, int $expiration )
do_action( "set_transient_{$transient}", mixed $value, int $expiration, string $transient )
使用举例:
$initial = time();
set_transient( 'foo', 'bar', 300 );
sleep( 10 );
$update = time();
set_transient( 'foo', 'barbar' );
-
WordPress函数:esc_html_x 带上下文的转义翻译WordPress函数:esc_html_x 带上下文的转义翻译
-
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企业官网主题作品。我们之前已经分享过一些关于追格的企业官网主题,包括收费和免费版本,这些主题都因其独特的设计和出色的功能而深受用户喜爱。
暂无评论,抢个沙发...