自定义帖子类型-META_QUERY:更早开始的搜索课程

时间:2018-12-12 作者:dvn22

我有课程自定义帖子类型,其中有4个日期子字段(除其他字段外):period_a_start, period_b_start, period_c_start, period_d_start.

我想创建一个查询,以获得提前开始的8个第一堂课(已排序)(无论哪个时段提前开始)。

因此,如果A课(period\\u c\\u start=2018年12月13日)、B课(period\\u A\\u start=2015年12月20日)、c课(period\\u d\\u start=2018年12月14日)。。。。。

我想把课程按如下顺序重新排序:A课、C课、B课。。。

这就是我迄今为止所尝试的:

$args  = [\'post_type\'=> \'cp_course\', \'numberposts\' => 8,\'orderby\' => \'menuorder\', \'order\' => \'ASC\',
         \'meta_query\' =>
            array(
                \'relation\' => \'OR\',
                array(
                    \'key\' => \'period_a_start\',
                    \'compare\' => \'>=\',
                    \'type\' => \'numeric\',
                    \'value\' => date("m/d/Y"),
                ),
                array(
                    \'key\' => \'period_b_start\',
                    \'compare\' => \'>=\',
                    \'type\' => \'numeric\',
                    \'value\' => date("m/d/Y"),
                ),
                array(
                    \'key\' => \'period_c_start\',
                    \'compare\' => \'>=\',
                    \'type\' => \'numeric\',
                    \'value\' => date("m/d/Y"),
                ),
                array(
                    \'key\' => \'period_d_start\',
                    \'compare\' => \'>=\',
                    \'type\' => \'numeric\',
                    \'value\' => date("m/d/Y"),
                )
            )];
$course = get_posts($args);
但这种方法不能保证它会返回按日期提前订购的8个课程

1 个回复
SO网友:Jim

我建议您将时间存储为字符串,而不是d-m-Y 总体安排使用strtotime() 将其格式化为长整数。这将帮助您比较字符串。我不能百分之百确定PHP是否能够比较字符串日期。但是,它也可以比较此用户提到的时间戳:How to compare dates and strings in PHP

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post