使用 get_posts 获取最接近今天日期的产品,带有日期元 - 不起作用



早上好,

我目前正在尝试获得最接近今天日期的 fooevents 产品,并且属于某个产品类别。我正在使用以下代码:

$lastposts = get_posts(array(
'post_type'=>'product', 
'posts_per_page' => 1,
'numberposts'      => 1,
'tax_query' => array(
array('taxonomy' => 'product_cat','field' => 'slug', 'terms' => 'standard-ferry-service' )
),
'order' => 'ASC',
'orderby'   => 'meta_value',
'meta_key' => 'WooCommerceEventsDate',
'meta_type' => 'DATE',
'meta_query' => array(
array(
'key'       => 'WooCommerceEventsDate',
'compare'   => '>=',
'value'     => date('F d, Y'),
'meta_type' => 'DATE',
)
)
));

然而,这似乎是通过一个随机的产品/事件。谁能看出我有没有写错什么?只有类别项目的拉通很好,只是没有得到正确的。

非常感谢任何帮助或建议。

我认为问题来自时间戳作为字符串存储在数据库中,这就是比较不起作用的原因。使用 NUMERIC 时,您的字符串应转换为 int 并允许比较

$lastposts = get_posts(array(
'post_type'=>'product', 
'posts_per_page' => 1,
'numberposts'      => 1,
'tax_query' => array(
array('taxonomy' => 'product_cat','field' => 'slug', 'terms' => 'standard-ferry-service' )
),
'order' => 'DESC',
'orderby'   => 'meta_value',
'meta_key' => 'WooCommerceEventsDate',
'meta_query' => array(
array(
'key'       => 'WooCommerceEventsDate',
'compare'   => '>=',
'value'     => date('Y-m-d'),
'type'      => 'NUMERIC' //casting to int
)
)
));

最新更新