这个Transient API 我可以在这里帮助你。瞬态是在规定的时间内存储的变量。
function filemtime_remote( $url )
{
$list = file_get_contents( $url , null , null , 0 , 200);
$important = explode("Last modified: ",$list)[1];
$mydate = substr($important, 0, 21);
return $mydate;
}
以上是您当前的代码,它会在每次加载页面时查找“上次修改”的时间。
您可以将其转换为:
function filemtime_remote( $url ){
# Get the transient
$mydate = get_transient( \'lm_\' . esc_url( $url ) );
if( false === $mydate ) {
# The transient expired or does not exist, so we fetch the last modified again
$list = file_get_contents( $url , null , null , 0 , 200);
$important = explode("Last modified: ",$list)[1];
$mydate = substr($important, 0, 21);
# We then save that date in a transient(which we can prefix with something like "lm_")
# We are saving the transient for 12 hours
set_transient( \'lm_\' . esc_url( $url ), $mydate , 12 * HOUR_IN_SECONDS );
}
return $mydate;
}
我没有尝试过,但逻辑是:使用
get_transient()
查看是否记录了过去12小时的值。如果我们确实有一个值(返回的值
FALSE
), 使用该值。如果我们没有值(返回值为
FALSE
), 然后使用
set_transient()
, 12小时后到期。