我想通过变量值设置WordPress瞬态。
这是我试图实现的示例代码。
<?php
if ( false === get_transient( \'special_query_results\' ) ) {
$ExpiryInterval = "24 * HOUR_IN_SECONDS"; // <--- Storing in Variable
$RandPostQuery = new WP_Query(array(\'post_type\'=>array(\'tip\'),\'posts_per_page\' => 1,\'orderby\'=>\'rand\'));
set_transient( \'special_query_results\', $RandPostQuery , $ExpiryInterval ); // <-- Retriving from Variable
}
?>
我不知道为什么它不起作用。如果我尝试直接设置而不使用变量,它会工作得很好。不知道为什么它不能这样工作。
最合适的回答,由SO网友:Tom J Nowell 整理而成
$ExpiryInterval = "24 * HOUR_IN_SECONDS";
$ExpiryInterval
正在分配一个字符串,但您需要一个数字。
考虑以下示例:
$foo = 5 * 10;
$bar = "5 * 10";
的价值
$foo
是
50
. 的价值
$bar
是
"5 * 10"
.
set_transient
需要数字,而不是字符串,
"24 * HOUR_IN_SECONDS"
是文本/字符串,
24 * HOUR_IN_SECONDS
是一个数字。
HOUR_IN_SECONDS
是一个常数,等于一小时内的秒数。