我有自定义的post类型,其中有4个日期子字段(除其他外):period_a_start、period_b_start、period_c_start、period_d_start。
我想要创建一个查询,以获得更早开始的8个第一课(排序)(不管哪个阶段更早开始)。
因此,如果A课(period_c_start = 13.12.2018),B课(period_a_start = 20.12.2015),C课(period_d_start = 14.12.2018)……
我想像这样把课程表拿回来: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节课。
发布于 2018-12-12 08:29:50
我建议您将时间存储为字符串而不是d-m-Y格式。使用strtotime()将其格式化为长整数。这将帮助您比较字符串。我不能100%确定PHP是否能够比较字符串日期。但是,正如这个用户所提到的那样,它能够比较时间篡改:如何比较中的日期和字符串
https://wordpress.stackexchange.com/questions/321715
复制相似问题