您可以使用瞬态缓存来缓存自定义查询。下面是一个简单的代码set_transient
缓存查询12小时。12小时后,WordPress将不会进行新的查询,而是从transient获取帖子。到期时,它将在接下来的12小时内再次以瞬态形式保存新查询。
我已经在我的网站上使用transient进行了很多查询,但请确保您仔细设置过期时间,否则您的新帖子可能会在一段时间内不会出现在您的网站上。
<?php
// Check for transient. If none, then execute Query
if ( false === ( $postslist = get_transient( \'postslist_query\' ) ) ) {
$args = array(
\'numberposts\' => 10,
\'orderby\' => \'meta_value_num\',
\'order\' => \'DESC\',
\'meta_key\' => \'event_date\',
\'meta_query\' => array(
array(
\'key\' => \'event_date\',
\'value\' => $today,
\'compare\' => \'<=\',
\'type\' => \'NUMERIC\'
)
)
);
$postslist = get_posts( $args );
// Put the results in a transient. Expire after 12 hours.
set_transient( \'postslist_query\', $postslist, 12 * 60 * 60 );
}
foreach ( $postslist as $post ) : setup_postdata( $post );
?>
了解更多信息
Transient API