按ACF日期选择器排序查询自定义帖子无法正常工作?

时间:2017-11-01 20:28:25

标签: php wordpress advanced-custom-fields

我有一个自定义帖子类型'事件',我试图按日期排序。由于某种原因它不起作用。我很困惑,因为我之前已经做过这个,没有问题。这次有什么问题?

前三行是通过ACF自定义字段获取分配给页面的月,年和状态。 (这与事件所具有的ACF字段是分开的。)基本上我只是试图获取该状态,月份和年份的事件。

<?php 
            $thestate = get_field('page_state');
            $themonth = get_field('page_month');
            $theyear = get_field('page_year');

            $meta_query = array(
                array(
                    'key'       => 'event_state',
                    'value'     => $thestate,
                    'compare'   => '='
                ),
                array(
                    'key'       => 'event_month',
                    'value'     => $themonth,
                    'compare'   => '='
                )
            );

            $args = array(
                'meta_key'          => 'date_of_event',
                'order_by'          => 'meta_value_num',
                'order'             => 'ASC',
                'post_type'         => 'event',
                'posts_per_page'    => -1,
                'meta_query'        => $meta_query
            );

            $myposts = get_posts($args);

            if($myposts) { ?>

            <?php foreach($myposts as $post) { ?>
                <?php setup_postdata( $post ); ?>

                /*--Code Here--*/


                <?php wp_reset_postdata(); ?>
            <?php } ?>
            <?php } ?>

编辑: 我想出了这个问题。我花了太长时间才弄明白,但事实证明这是因为我使用'order_by',而我需要使用'orderby'...删除下划线是需要的全部内容完成。我不确定为什么会这样。 'order_by'似乎适合其他人,所以我仍然有点困惑,但很高兴我设法修复它。

1 个答案:

答案 0 :(得分:0)

您的order_by正在使用'meta_value_num',但它可能应该使用'meta_value',因为您的日期是字符串。您必须检查您的存储日期是否采用“Y-m-d”格式,否则排序将无法正常工作。