サポート » 使い方全般 » カスタムフィールドの日付でソート後、絞り込むには

  • 初めまして。WordPress初心者です。

    作成中のWebサイトに自分たちが参加するイベントの一覧を表示したいと思っています。
    条件は以下の通りです。
    ・開催日が遅いイベントを上に表示する
    ・開催日が昨日までのイベントは表示させない
    そこでカスタムフィールドに日付の項目を作っておき、WP_Queryで降順にソートした上で表示させるところまではできました。

    次に日付が昨日までの投稿が表示されないようにしたいのですが、その方法が解りません。
    あちこちのサイトを参考に以下のように「meta_query」を追加してみたところ、1件も表示されなくなりました。

    $query = new WP_Query( array( ‘posts_per_page’ => $display_count,
    ‘orderby’ => ‘meta_value_num’ ,
    ‘post_type’ => ‘events’,
    ‘meta_key’ => ‘wpcf-event_date’ ,
    ‘order’ => ‘DESC’,
    ‘meta_query’ => array( array(
    ‘key’ => ‘wpcf-event_date’ ,
    ‘value’=> date( ‘Y/m/d’ ) ,
    ‘compare’=>’>=’,
    ‘type’ => ‘DATE’
    ))
    ));

    どこが間違っているのか、どう修正すれば解決するかをご教授いただけると幸いです。
    よろしくお願いいたします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • function my_filter_where($query = '') {
    $query .= " AND post_date >= '" . date_i18n('Y-m-d', strtotime('today')) . "'";
    return $query;
    }
    add_filter('posts_where', 'my_filter_where');

    これで公開日が今日の投稿しか表示しません。

    トピック投稿者 Michiaki Yogata

    (@michiaki-yogata)

    stranger-jpさん、早々のご返信ありがとうございます。

    なにぶん初心者なもので違っていたらごめんなさい。
    お教えいただいた方法で表示されるのは「今日以降に公開した投稿のみ」ではないでしょうか?

    私が言葉足らずだったかもしれませんでの改めて状況を説明させてください。

    イベント情報は、過去に投稿したものが複数あり、今後も随時追加されていきます。
    もちろん個々のイベント情報の公開日とイベント開催日は異なります。
    Webに表示しなければならないのは、公開日に関わらず、本日移行に開催されるイベントの一覧です。
    そこでカスタムフィールドとして「イベント開催日」というDATE項目を設けました( 上記ソースの’wpcf-event_date’ )。

    やりたいのはイベント情報をカスタムフィールドのイベント開催日(公開日ではなく)でソートし、かつイベント開催日が今日以降の投稿だけを取り出すことです。

    お手数ですが、もう一度お教えいただけるとありがたいです。
    よろしくお願いいたします。

    日付が昨日までの投稿が表示されないようにしたい

    言葉って難しいですよね。
    記した方法は投稿日が今日の投稿のみ表示 です。
    以下が参考になりませんか?
    http://www.webopixel.net/wordpress/343.html

    トピック投稿者 Michiaki Yogata

    (@michiaki-yogata)

    stranger-jpさん、ありがとうございます。

    お教えいただいたページは私も見つけて真似してみたことがあったのですが、「未来のイベントだけを表示するアーカイブテンプレート」の「’meta_value’ => date(‘Y-m-d H:i’),」で画面が真っ白になってしまいます。原因は解りません。

    WP_Queryだけですっきり解決したかったのですが、これ以上この件に時間を割けないので、ひとまずソートのみに留め、if文で昨日までのイベントが出てきたらループをbreakすることで対処します。

    いずれ解決方法を見つけるかもしれないので、スレッドは開けたままにしておきます。

    今ちょうど同じようなことをしていましたので、少しだけ….
    自分自身もまだまだ勉強中の身ですので、全くの思い違いでしたらスミマセン。

    'meta_query'  => array( array(
        'key'     => 'wpcf-event_date',
        'value'   => date( 'Y/m/d' ),
        'compare' => '>=',
        'type'    => 'DATE',
    ) ),

    この部分で取得している日付の書式は揃っていますか?

    あと、「value」の方は、 date_i18n() としてあげないと、
    時差分現在時とずれませんか?

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「カスタムフィールドの日付でソート後、絞り込むには」には新たに返信することはできません。