Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 缓存和3 wp_查询有问题_Wordpress_Caching - Fatal编程技术网

Wordpress 缓存和3 wp_查询有问题

Wordpress 缓存和3 wp_查询有问题,wordpress,caching,Wordpress,Caching,在WordPress的自定义主题中,我创建了一个FrontPage.php。我有三个WP_查询。第一个只接受一个自定义的post类型 $args = array ( 'post_type' => array( 'frontpage_element' ), 'orderby' => 'rand', 'posts_per_page' => '1', ); $query = new WP_Query( $args ); if ($que

在WordPress的自定义主题中,我创建了一个FrontPage.php。我有三个WP_查询。第一个只接受一个自定义的post类型

$args = array (
    'post_type'      => array( 'frontpage_element' ),
    'orderby'        => 'rand',
    'posts_per_page' => '1',
);
$query = new WP_Query( $args );
if ($query->have_posts()):
    while ($query->have_posts() ) : $query->the_post();
        // DISPALY A PICTURE
    endwhile;

    // Reset postdata
    wp_reset_postdata();
endif;
第二个是默认循环

if (have_posts()) : 
    while (have_posts()) : the_post(); ?>
        the_title();
        the_content();

    endwhile; 

    // Reset postdata
    wp_reset_postdata();

endif;
第三个WP_查询显示类别的前6个post条目

$options = get_option('custom_theme_options');
$categories = implode("," , $options['catprojectlayout']);
$atts = shortcode_atts( array(
       'paging'     => 'projectpage',
       'post_type'      => 'post',
       'posts_per_page'     => '6',
       'post_status'        => 'publish',
       'cat' => $categories,
       'cache_results' => false
 ), $atts );

 $paging = $atts['paging'];
 unset( $atts['paging'] );

 if( isset($_GET[$paging]) )
    $atts['paged'] = $_GET[$paging];
 else
    $atts['paged'] = 1;

$custom_query = new WP_Query( $atts );
$pagination_base = add_query_arg( $paging, '%#%' );

if ($custom_query->have_posts()) : while ($custom_query->have_posts()) : $custom_query->the_post(); 
    the_title();
    the_content();
endwhile; endif; 

echo paginate_links( array(
    'type'      => '',
    'base'      => $pagination_base,
    'format'    => '?'. $paging .'=%#%',
    'current'   => max( 1, $custom_query->get('paged') ),
    'total'     => $custom_query->max_num_pages,
    'prev_text' => '<div class="prevbtn"></div>',
    'next_text' => '<div class="nextbtn"></div>',
    'show_all' => true
)); 
$options=get_option('custom_theme_options');
$categories=内爆(“,”,$options['catprojectlayout']);
$atts=短码_atts(数组)(
“分页”=>“项目页面”,
“post_type”=>“post”,
“每页帖子数”=>“6”,
“发布状态”=>“发布”,
“cat”=>$categories,
“缓存_结果”=>false
)(港币),;
$paging=$atts['paging'];
未设置($atts['paging']);
if(isset($\u GET[$paging]))
$atts['paged']=$\u GET[$paged];
其他的
$atts['paged']=1;
$custom\u query=新的WP\u查询($atts);
$pagination_base=add_query_arg($pagination,%#%');
如果($custom_query->have_posts()):而($custom_query->have_posts()):$custom_query->the_post();
_title();
_内容();
结束时;endif;
回显分页链接(数组(
'类型'=>'',
'base'=>$pagination_base,
'格式'=>'?'.$paging'=%#%',
“当前”=>max(1,$custom\u query->get('paged'),
“总计”=>$custom\u query->max\u num\u页面,
'上一个文本'=>'',
'下一个文本'=>'',
“全部显示”=>正确
)); 
代码可以工作,但我在缓存方面有问题。当我向已定义的类别添加新帖子时,第二个WP_查询没有更新(我想是因为浏览器缓存)

我想我已经完成了中定义的代码


它应该是这样工作的:当我在定义的类别中添加一篇新文章时,用户浏览到首页,站点必须从服务器重新加载(因为在第三个WP_查询中有一个新条目).

这很可能是浏览器缓存,因为浏览器倾向于存储样式表和图像页面内容通常在每次加载页面时重新解释,以防页面发生更改

它更可能是在服务器或其他第三方服务(如Cloud flare)上兑现,后者将页面外观存储一段时间,以避免反复重新生成相同的动态页面控件


WP_引擎主机有自己的缓存,可以通过仪表板清除,CloudFlare允许根据URL和插件清除缓存。。。这些都是不同的,检查是否有控制缓存的插件,或者在进行更改时关闭它们,或者清除它们的缓存。

是的,我认为这是浏览器缓存,因为当我重新加载站点时(不仅仅是浏览导航,而是按F5重新加载),站点加载正确。有没有办法强制重新加载浏览器缓存?通常按住ctrl键并按F5将强制再次下拉新样式和图像。。。或者您可以设置一个网站标题,告诉浏览器不要缓存文件,但这取决于正在使用的Web服务器,这一点很清楚。但是我在寻找一种方法,我可以强制用户重新加载。我认为网站标题的方式不正确,因为当我改变了一些东西时,网站必须重新加载,不是每次。我发现了我的错误。在.htaccess中,我有一个通常为35天的缓存活动:
ExpiresActive on ExpiresDefault“access加35天”