我一直在我的网站上使用wp_cache功能来提高主页的性能并避免多次查询。
我已将代码放入我的function.php中,如下所示,
add_action( 'wp_head', 'set_data_in_cache' );
function set_data_in_cache(){
if ( is_front_page() ) {
gloabl $wpdb;
$dataInCache = wp_cache_get('post_data');
if( $dataInCache === false ){
$result = $wpdb->query('some query');
wp_cache_set('post_data',$result,'',86400);
}
else{
//data in cache
}
}
}
我一直在检查,每次页面加载时,$ dataInCache变量都是空的。表示没有数据存储在缓存中。 页面加载后,它不应为空,并将数据设置为缓存。
但$ dataInCache = wp_cache_get('post_data');在身体标签内完美地工作,数据正在完美显示。
我的代码中有什么问题吗?
答案 0 :(得分:0)
你需要在wp_cache_get中使用force来获得结果。
wp_cache_get( $key, '', true );
最好定义一个组,然后获取缓存,以便它可以在头部使用。