从wordpress中的自定义字段日期循环未来的事件帖子
looping future event posts from custom field date in wordpress
我正在尝试循环一些帖子,这些帖子有一个名为 "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 的输出。我只能用我自己的代码来做。
您可以在 meta_query
中传递 type
。
type
=> (string) - 自定义字段类型。可能的值为 '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'
EDIT
要更改 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'
});
注意::我不确定此更改是否会影响其他人。
我正在尝试循环一些帖子,这些帖子有一个名为 "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 的输出。我只能用我自己的代码来做。
您可以在 meta_query
中传递 type
。
type
=> (string) - 自定义字段类型。可能的值为 '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'
EDIT
要更改 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'
});
注意::我不确定此更改是否会影响其他人。