这是WordPress 3.9“Smith”。我正在尝试实现new Archive page 根据the suggestion 米洛的。
$categories = get_categories( $cat_args ); //it\'s NOT important for the Q, as it\'s fetching perfectly
foreach( $categories as $category ) {
$args = array(
\'posts_per_page\' => -1,
\'category__in\' => array( $category->term_id ),
\'ignore_sticky_posts\' => 1,
\'post_status\' => \'publish\',
\'date_query\' => array(
array(
\'after\' => array(
\'year\' => 2014,
\'month\' => 01,
\'day\' => 25,
),
\'before\' => array(
\'year\' => 2014,
\'month\' => 01,
\'day\' => 25,
),
\'inclusive\' => true,
),
)
);
$posts = get_posts( $args );
var_dump($posts);
}
根据米洛的建议,我会将硬编码日期动态化,但通过这种硬编码
var_dump($posts)
正在显示
empty 阵列。
我在跟踪Viper007Bond.com\'s tutorial 在WP上date_query
我在1月25日和22日有帖子。我试着改变day
值,但结果是空数组。
当然,我在这里粘贴的代码来自archive.php
我的URL所在位置:
http://localhost/project_name/date/2014/01/25/
最合适的回答,由SO网友:gmazzap 整理而成
\'date_query\'
参数采用另一个选项“relation”,该选项可以是AND
或OR
.
如果我们考虑到OR
您的代码对“before”和“after”使用完全相同的日期,并且“inclusive”设置为true,应该返回您的所有帖子:某个日期之前的帖子+该日期之后的帖子+该日期内的帖子。
如果我们考虑和之间的关系,可以总结为post_date >= date && post_date <= date
date本身也是如此,但可能有一些关于date查询类的东西(我没有深入挖掘核心)阻止了这样的查询,老实说,这对我来说毫无意义。
原因很简单:如果要查询一个根本不需要在之后/之前使用的特定日期,只需创建一个包含要显示的年、月和日的数组
$args = array(
\'date_query\' => array(
array(
\'year\' => 2012,
\'month\' => 12,
\'day\' => 12,
),
),
);
$query = new WP_Query( $args );
上面的代码取自中日期查询参数的第二个示例
Codex.