我的DATE_QUERY有什么问题?

时间:2014-04-22 作者:Mayeenul Islam

这是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/

1 个回复
最合适的回答,由SO网友:gmazzap 整理而成

\'date_query\' 参数采用另一个选项“relation”,该选项可以是ANDOR.

如果我们考虑到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.

结束

相关推荐

WP_POST_UPDATE上的帖子重复

我在编写一个简单的函数时遇到了麻烦,该函数可以在某个页面上更新自定义帖子类型中的所有帖子。这是我的代码(基于this):add_action(\'save_post\', \'bulk_refresh\'); function bulk_refresh($post_id) { if($post_id != 123)//123 is the \'certain page\' id return; $posts_to_update = new W