我正在尝试循环一些帖子,这些帖子有一个名为" WooCommerceEventsDate"的自定义字段。包含格式的日期(j F Y)。 我想要实现的只是循环当前日期之后的帖子。我已尝试过任何我在网上看过的解决方案,但我无法让它发挥作用。现在,循环会占用所有帖子,而不仅仅是今天之后有日期的帖子。
到目前为止,我的论点是:
$today = date('j F Y');
$args = array(
'posts_per_page' => 3,
'post_type' => 'product',
'post_status' => 'publish',
'meta_key' => 'WooCommerceEventsDate',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'WooCommerceEventsDate',
'compare' => '>=',
'value' => $today,
)
)
);
你们其中一个人可以找出这里出错的原因,以及为什么这些论点没有过滤?
澄清
echo get_field('WooCommerceEventsDate');
回声:" 2016年8月2日"。
我无法在后端更改WooCommerceEventsDate的输出。我只能用我自己的代码来做。
答案 0 :(得分:1)
您可以在type
中传递meta_query
。
type
=> (字符串) - 自定义字段类型。可能的值为'NUMERIC','BINARY','CHAR','DATE','DATETIME','DECIMAL','SIGNED','TIME','UNSIGNED'。默认值为“CHAR”。
$today = date('j F Y');
$args = array(
'posts_per_page' => 3,
'post_type' => 'product',
'post_status' => 'publish',
'meta_key' => 'WooCommerceEventsDate',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'WooCommerceEventsDate',
'compare' => '>=',
'value' => $today,
'type' => 'DATE',
)
)
);
更多信息请查看http://www.billerickson.net/code/wp_query-arguments/第141行'meta_query'
修改
对于WooCommerceEventsDate
的更改日期格式,请转到plugins/woocommerce_events/js/events-admin.js
找到此功能
jQuery('#WooCommerceEventsDate').datepicker({
dateFormat : 'd MM yy'
});
随此改变
jQuery('#WooCommerceEventsDate').datepicker({
//dateFormat : 'd MM yy'
dateFormat : 'yy-mm-dd'
});
注意::我不确定此更改是否会影响他人。