从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'
});

注意::我不确定此更改是否会影响其他人。