wp_cache_get无法在wp_head钩子中工作

时间:2017-05-26 05:57:09

标签: wordpress caching

我一直在我的网站上使用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');在身体标签内完美地工作,数据正在完美显示。

我的代码中有什么问题吗?

1 个答案:

答案 0 :(得分:0)

你需要在wp_cache_get中使用force来获得结果。

wp_cache_get( $key, '', true );

最好定义一个组,然后获取缓存,以便它可以在头部使用。