在wordpress中循环自定义字段日期的未来事件帖子

时间:2016-06-13 11:21:48

标签: php wordpress custom-fields

我正在尝试循环一些帖子,这些帖子有一个名为" 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的输出。我只能用我自己的代码来做。

1 个答案:

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

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