web-dev-qa-db-ja.com

WP メタ値(日付)によるクエリソート

私はメタキー "event_date"でソートしたいと思っているのですが、今日の日付と3週間後の投稿のみを表示したいと思います。どういうわけか、私がWP Queryを単にタイプと順序をポストするように削除しても、何も印刷されず、スクリプトはコードが挿入された場所で停止するだけです。

<?php $events_args = array(
    'meta_query' => array(
        array(
            'key' => 'event_date',
            'value' => date('d-m-Y', strtotime("+3 weeks")),
            'compare' => '<',
            'type' => 'DATE'
        )
    ),
    'posts_per_page' => 3, 
    'post_type' => 'event', 
    'meta_key' => 'event_date', 
    'orderby' => 'meta_value', 
    'order' => 'ASC'
    ); ?>
<?php $upcoming_events = WP_Query($events_args); ?>
<?php if($upcoming_events->have_posts()): while($upcoming_events->have_posts()): $upcoming_events->the_post(); ?>
    <a href="<?php the_permalink(); ?>"><article class="post_block">
        <h2><?php the_title(); ?></h2>
        <p class="date"><?php $date = new DateTime(get_field('event_date')); echo $date->format('d-m-Y'); ?><?php // echo get_the_date('d-m-Y'); ?></p>
        <p class="text"><?php echo get_the_excerpt(); ?></p>
    </article></a>
<?php endwhile; endif; wp_reset_postdata(); ?>

何も出力されない理由は何ですか?以下のような単純なquery_postを実行したとします。

query_posts('posts_per_page=3&post_type=event&meta_key=event_date&orderby=meta_value&order=DESC');

それからそれはイベントをプリントアウトするでしょう、しかしそれは最新のイベントの後にソートするでしょう、そして私は今日だけ表示するために先の3週間からのイベントをソートする必要があります。

1
Dueify

正しい日付フォーマットを入力する必要があります:Ymdまたはyyyy-mm-dd。

4
Dueify