问题归结为this bit of code 在里面WP_Widget::display_callback()
:
$was_cache_addition_suspended = wp_suspend_cache_addition();
if ( $this->is_preview() && ! $was_cache_addition_suspended ) {
wp_suspend_cache_addition( true );
}
这之前就有人打电话
WP_Widget_Recent_Posts::widget()
它的目的是尽可能地让back compat避免在发布更改之前在定制器中预览的小部件污染对象缓存。对于最近发布的小部件,显示每篇文章的特色图像,暂停缓存意味着每次在定制器中访问每篇文章时,都可能需要查询和重新查询每篇文章的postmeta。
在呈现小部件时显式关闭缓存挂起的解决方法是在小部件子类的开头添加以下内容widget
方法:
if ( $this->is_preview() && wp_suspend_cache_addition() ) {
wp_suspend_cache_addition( false );
}
这将立即撤消刚刚在调用中的缓存添加挂起
WP_Widget::display_callback()
方法,并且查询数应返回到您在前端上看到的值。