【问题标题】:Sorting query of custom posts by ACF Date Picker not working properly?ACF 日期选择器对自定义帖子的排序查询无法正常工作?
【发布时间】:2017-11-03 06:19:29
【问题描述】:

我有一个自定义帖子类型“事件”,我正在尝试按日期排序。并且由于某种原因它不起作用。我很困惑,因为我之前实际上已经这样做了,没有任何问题。这次出了什么问题?

前三行用于获取通过 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' 似乎对其他人有用,所以我仍然有点困惑,但很高兴我设法解决了它。

【问题讨论】:

    标签: php wordpress advanced-custom-fields


    【解决方案1】:

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

    【讨论】:

    • 我已经尝试过 'meta_value_num' 和 'meta_value' ,但它们都不起作用。此外,输出日期选择器格式已经是“Ymd”。那不是和'Y-m-d'一样吗?
    • 嗯,通常它应该在年、月和日之间有破折号......除非我能看到变量的输出,否则很难再提供帮助。
    • 'Y-m-d' 似乎没有帮助。 :/ 所有符合条件的帖子都按照创建的顺序显示。所以基本上只是按时间顺序排列,就好像它们是按发布日期排序的一样。
    猜你喜欢
    • 2017-07-26
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 2020-07-27
    • 2016-01-24
    • 2016-01-02
    • 2015-01-18
    相关资源
    最近更新 更多