• 解決済 toakts0024

    (@toakts0024)


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

    今回質問したいのはdate_queryの使い方です。

    実現したい事
    ■毎月27日~翌月末までの記事を表示
    ■今日の日付より古い記事は表示しない
    未来の記事の表示はNo Future Postsを使用しています。

    分かりにくいかと思うのでご説明すると、

    例えば
    2月10日にそのサイトを見ると、2月10日~2月28日までの記事が表示される
    2月27日にそのサイトを見ると、2月27日から3月31日までの記事が表示される

    といった形になります。

    毎月27日になると次の月の最終日までのすでに登録されている記事がまとめて表示される

    といったループです。

    今までは、

    function filter_where($where = '') {
    $where .= " AND post_date > '" . date('Y-m-d', strtotime('0 days')) . "'";
    return $where;

    上記ののコードを記述し、本日より古い記事は表示せず、未来の記事は27日になるとまとめて非公開から公開へ変えていました。
    しかし、これだと非常に効率が悪いので、あらかじめ記事は全て登録しておき、ループで表示を制御させたいと思いました。

    現状、完全に手動ですが、条件文を日付指定で書くと希望通りの動きは果たせています。
    あとはこれを自動化させるだけなのですが、そこで躓きました。

    'date_query' => array(
    		array(
    			'after'     => 'January 27st, 2015',
    			'before'    => array(
    				'year'  => 2015,
    				'month' => 2,
    				'day'   => 28,
    			),
    			'inclusive' => true,
    		),
    	),

    これを自動化させる方法などございましたらご教授頂ければと思います。

    よろしくお願い致します。

  • トピック「date_queryで特定の期間の記事を表示する」には新たに返信することはできません。