每日点滴的帖子-基于用户‘startData’-从最旧到最新排序

时间:2020-03-24 作者:sheriffderek

我想为我的班级“滴”课——每天1节。在课程索引中,在第一天,您将看到第一节课,然后在第二天,看到第二节课和第一节课,等等-今天的课位于顶部(如图所示)。

我正在检查当前用户,并找出他们所在的“团队”。该团队有一个start_date - 因此,我可以将start\\u日期与今天的日期进行比较,得出两者之间的差异。进展顺利。

<?php $args = array(
  \'post_type\' => \'lesson\',
  \'orderby\' => \'post_date\', // or date?
  \'order\'=> \'ASC\',
  \'posts_per_page\' => daysAvailable(), // difference between today/start date?
  // if there are 100+ lessons... and I only need  5 - 
  // then I should only grab 5 here...
); ?>
这将获取数组的另一端。我只想要最古老的/第001、002课等。

由于有许多组合可以反转阵列,并且只想得到一个特定的数字,因此非常容易打滑!我总是能想出一个意想不到的约会时间!

我在这里草拟了一个概念的快速证明:https://codepen.io/sheriffderek/pen/0d0237f0c352a8b42527cdbd4bff9c0e?editors=0011 - 但我觉得我在与框架作斗争。所以,在我继续之前。。。你觉得怎么样?我应该使用哪些查询选项?

enter image description here

(只是澄清一下-那些灰显的课程从未打印到HTML中)

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

因此,这可能无法准确回答问题,但我希望它能帮助您,尤其是在问题的以下部分:

我只想要最古老的/第001、002课等。

正如我在评论中指出的那样,如果“课程”/帖子的日期按时间顺序与图表中的一样(1月1日、1月14日、2月1日等),您可以在中使用日期查询WP_Query 并查询日期在start_date 值,直到今天为止。

因此,如果例如start_date2020-01-01 (即2020年1月1日)而今天是2020年2月1日,以下查询将返回January 1st, January 14thFebruary 1st 帖子,我想这是你基于这个问题想要的:

$args = array(
    \'post_type\'  => \'lesson\',
    \'orderby\'    => \'date\', // Note that \'date\' is simply an alias for \'post_date\'.
    \'order\'      => \'DESC\',
    \'date_query\' => array(
        \'after\'  => \'2019-12-31\', // this is start_date; equivalent to \'2019-12-31 23:59:59\'
        \'before\' => \'tomorrow\',   // equivalent to using the value \'2020-02-02 00:00:00\'
    ),
);
$query = new WP_Query( $args );
// ... your code here ...
注:该afterbefore 在日期查询中,它们都接受一个strtotime() 接受(例如。tomorrow, yesterday, +1 month, 等等)。此外,在WP_Query, date 是默认值orderby 值,而DESC 是默认值order 价值

相关推荐

WP ForLoop用于比较帖子的元数据信息以确定要显示的帖子

我在这里尝试的缺点是:我只想根据存储在自定义字段中的日期显示一篇文章。我只想显示符合两个条件的帖子1:日期必须尚未发生,即必须大于当前日期2:要显示的帖子日期必须是所有可能帖子中最接近当前日期的。这是下一个日期。我的问题是,当我要比较一篇文章和另一篇文章,然后使用WordPress循环只显示适当的文章时,我不知道从哪里开始。我想我需要使用for循环遍历每个帖子并进行比较,然后运行一个新的查询来显示我的一篇帖子。太长,读不下去了我可以使用forloop来检查WP\\u查询吗?如何访问其中的帖子信息?这是我的