使用下面描述的技术在wordpress站点上实现片段缓存时:http://css-tricks.com/wordpress-fragment-caching-revisited/ 我发现它实际上似乎增加了查询。
我现在已经在页面上缓存了许多片段,并且(在我的本地环境中)在0.764秒内得到294个查询(使用get_num_queries()
和timer_stop(0)
).
我缓存的一个片段是菜单。如果我从中删除片段缓存,我将在0.736秒内得到:292个查询。
如果我在0.862秒内从搜索中删除片段缓存:290个查询。
如果我删除更多查询:在0.783秒内删除287个查询。
那么,这里发生了什么?片段缓存确实在工作,但它是否有积极的影响?另外,使用片段缓存的查询比不使用片段缓存的查询多,这样可以吗?
在里面functions.php
我有:
function fragment_cache($key, $ttl, $function) {
if ( is_user_logged_in() ) {
call_user_func($function);
return;
}
$key = apply_filters(\'fragment_cache_prefix\', \'fragment_cache_\').$key;
$output = get_transient($key);
if ( empty($output) ) {
ob_start();
call_user_func($function);
$output = ob_get_clean();
set_transient($key, $output, $ttl);
}
echo $output;
}
在我的帖子页面中
<?php fragment_cache(\'text\' . $post->ID, WEEK_IN_SECONDS, function() { ?>
<?php the_sub_field(\'text\'); ?>
<?php }); ?>
在我的菜单中:
<?php
fragment_cache(\'primary-nav\', YEAR_IN_SECONDS, function() {
wp_nav_menu( array( \'theme_location\' => \'primary\' ) );
});
?>