WordPress循环按自定义日期排序

时间:2018-02-07 13:32:18

标签: php wordpress

我有一个事件自定义帖子类型,但是想按日期排序帖子,这是一个自定义字段。我已经在$ args中尝试了一些使用meta的方法,但无法正确使用。有人有什么建议吗?

<?php

    $args = array(
        'post_type' => 'fw-event',
        'posts_per_page' => -1
    );

    $the_query = new WP_Query( $args );

    while ( $the_query->have_posts() ) :
        $the_query->the_post();

        global $post;
        $options = fw_get_db_post_option($post->ID, fw()->extensions->get( 'events' )->get_event_option_id());
        $eventbrite = fw_get_db_post_option($post->ID, 'eventbrite');
        $eventlogo = fw_get_db_post_option($post->ID, 'eventlogo');
        $test = fw_get_db_post_option($post->ID, 'event_date_range');

        // Set variables for date
        if ($options['event_children']) {
            foreach($options['event_children'] as $key => $row) :
                $originalDate = $row['event_date_range']['from'];
                $newDate = date("d M, Y", strtotime($originalDate));

                $Day = date("d", strtotime($originalDate));
                $Month = date("M", strtotime($originalDate));
            endforeach;
        }

        ?>

        <?php if (strtotime($newDate) > time() && $options['event_children']) { ?>

        <div class="event-listing">
            <div class="date matchHeightRow">
                <?php if ($options['event_children']) { ?>
                    <?php foreach($options['event_children'] as $key => $row) : ?>
                        <span><?php echo esc_attr__($Day); ?></span>
                        <?php echo esc_attr__($Month); ?>
                    <?php endforeach; ?>
                <?php } ?>
            </div>
            <div class="content matchHeightRow">
                <aside>
                    <h5>
                        <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
                            <?php the_title(); ?>
                        </a>
                    </h5>
                    <?php echo limit_words(get_the_excerpt(), '15'); ?>&hellip;
                    <p>
                        <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
                            <?php echo esc_attr__( 'Find out more &rarr;' , 'wmmc' ); ?>
                        </a>
                    </p>
                </aside>
            </div>
        </div>

    <?php } ?>

<?php endwhile; ?>

我正如你所见,使用变量分割日期,谢谢!

1 个答案:

答案 0 :(得分:0)

使用groups将您的日期保存在数据库中,您将存储日期的int值。这应该工作

groupby()

这种方法适用于我。

如果您有'从'和'日期'到'的日期 - 将其保存到不同的字段。