存档页面日期的 WP_Query 不起作用
Posted
技术标签:
【中文标题】存档页面日期的 WP_Query 不起作用【英文标题】:WP_Query for Archive Page Date not work 【发布时间】:2017-06-14 18:18:20 【问题描述】:我在 archive.php 上编辑了我的主题,只显示一个特定的帖子并排除一个带有特定 meta_key 的帖子:
$posts_to_exclude_args = array(
'meta_key' => 'vip_box',
);
$posts_to_exclude = new WP_Query( $posts_to_exclude_args );
$to_exclude = array();
while ( $posts_to_exclude->have_posts() ) : $posts_to_exclude->the_post();
$to_exclude[] = $post->ID;
endwhile;
wp_reset_postdata();
$lastupdated_args = array(
'post__not_in' => $to_exclude,
'author__in' => $author,
'category__in' => $terms,
'posts_per_page' => 12,
'has_archive' => true,
'paged' => $paged,
);
$lastupdated_loop = new WP_Query( $lastupdated_args );
query_posts( $lastupdated_args );
<?php if ( have_posts() ) : ?>
它很完美,但现在如果我打开一个日期链接/url mywebsite.com/2017/06,它会显示所有帖子,而不仅仅是这个日期的帖子,为什么?
你能帮帮我吗?
【问题讨论】:
另一方面,您不必在WP_Query
之后使用query_posts
。他们做同样的事情,但强烈推荐WP_Query
,因为它不会修改全局变量,在任何地方都可以安全使用,并且在查询帖子时效率更高。循环只需要更改为<?php if ( $lastupdated_loop->have_posts() ) : while ( $lastupdated_loop->have_posts() ) : $lastupdated_loop->the_post(); ?>
感谢您的建议 =)
【参考方案1】:
我已经修复了这段代码,但我认为有比这更好的解决方案。 =)
$year = get_query_var('year');
$monthnum = get_query_var('monthnum');
$day = get_query_var('day');
'date_query' => array(
array(
'year' => $year,
'monthnum' => $monthnum,
'day' => $day,
),
),
);
【讨论】:
以上是关于存档页面日期的 WP_Query 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
WP_Query($args) 在 Wordpress 中不起作用