我对瞬变现象还不熟悉,但我想我了解它背后的逻辑。
所以我有一个博客,我通过API从我的另一个博客中获取帖子。
现在我想暂时保存数据,这样就不会每次访问页面时都发出请求。
这是我的代码:
if (false === ($posts === get_transient(\'posts_array\'))) {
$response = wp_remote_get( \'https://website.com/blog/wp-json/wp/v2/posts?per_page=5&_embed\' );
// Exit if error.
if ( is_wp_error( $response ) ) {
return;
}
$posts[] = json_decode( wp_remote_retrieve_body( $response ) );
set_transient(\'posts_array\', $posts, DAY_IN_SECONDS);
}
现在由于某种原因,我的WordPress没有得到瞬态,它似乎总是向API发出请求,以获得
$posts
我应该找个地方吗
$posts
具有
get_transient
是否存在?
最合适的回答,由SO网友:bueltge 整理而成
我的意思是,很快你的代码在第一行就错了,比较是错误的。变量$post
应存储=
请求的数据通过get_transient()
而不是比较===
.
因此,您应该切换到:
if ( false === ( $posts = get_transient(\'posts_array\') ) ) {
// this code runs when there is no valid transient set
}