早上好,
我目前正在尝试获得最接近今天日期的 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
)
)
));