サポート » 使い方全般 » 投稿一覧で過去の日付の記事を表示させない。

  • 解決済 toakts0024

    (@toakts0024)


    いつもお世話になっております。

    現在、イベントのスケジュールを表示するサイトを作成しております。

    そこでeventというカスタム投稿を作成し、「No Future Posts」で未来の日付を含めた記事の一覧表示に成功しました。

    しかし、サイトの特性上、今現在の日付より過去の記事はループの対象から外したいのです。

    例えば、日付が1月25日だとしたら、1月24日までの記事は一覧からは消えて、25日の記事と25日以降の記事だけ表示されるという形です。

    その際のループの処理のやり方が全く分からず困っています。

    何かいい方法はないでしょうか?

    ループの処理は以下になります。

    <?php
        $wp_query = new WP_Query();
        $param = array(
            'posts_per_page' => '-1', //表示件数。
            'post_type' => 'event', //カスタム投稿タイプの名称
            'post_status' => 'publish',
            'orderby' => 'date', //時間順に並び替え
            'order' => 'ASC'
        );
        $wp_query->query($param);
        if($wp_query->have_posts()): while($wp_query->have_posts()) : $wp_query->the_post();
    ?>
      <!-- ループ処理-->
    
    <?php endwhile; else: ?>
    <?php endif; ?>

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • WP_Query の posts_where フィルターが使えるのではないでしょうか。
    日本語Codex » WP_Query の「時間パラメータ」セクションに(英文のままですが)サンプルが載っています。

    トピック投稿者 toakts0024

    (@toakts0024)

    さっそくのご返信ありがとうございます!

    posts_whereを使用し、以下のコードを記述したところ、希望通りの動きが実現できました!

    ありがとうございました!

    function filter_where($where = '') {
    $where .= " AND post_date > '" . date('Y-m-d', strtotime('0 days')) . "'";
    return $where;
    }
    add_filter('posts_where', 'filter_where');
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「投稿一覧で過去の日付の記事を表示させない。」には新たに返信することはできません。