サポート » 使い方全般 » filter_whereで今月の記事のみ表示したい

  • 解決済 toakts0024

    (@toakts0024)


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

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

    そこで、一覧表示についてなのですが、現在

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

    上記のソースで今日の日付より過去の記事は表示させないという対応を取っております。

    しかし、今回同じ月の記事は表示させたいと思い、四苦八苦しておりますが一向に解決しません。

    具体的には、現在だと2月25日にサイトを見ると、2月25日の記事と未来の記事が見えるのですが、それを2月25日にサイトを見ると、2月1日からの記事と未来の記事を出したいという要望です。
    分かりづらく申し訳ありません。

    おそらく
    strtotime(‘0 days’)
    この部分でうまい事今月という指定が出来ればいいのですが、調べてみてもイマイチ方法が分かりませんでした。

    どなたかご教授頂ければ幸いです。

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

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • WordPressが3.7以降であれば、filterよりQueryに含んだほうが、分かりよい気がします。

    date_query というパラメータがありますので、参照してみてください。
    http://codex.wordpress.org/Class_Reference/WP_Query#Date_Parameters

    <?php
    	//当月の記事取得
    	$today = getdate();
    	$args = array(
    		'date_query' => array(
    			array(
    				'year' => $today["year"],
    				'month' => $today["mon"]
    			)
    		);
    	);
    	$query = new WP_Query( $args );
    ?>

    before / after で指定すれば、取得したい期間を絞り込むことも出来ると思います。

    <?php
    	//期間指定
    	$args = array(
    		'date_query' => array(
    			array(
    				'after'     => array(
    					'year'  => 2015,
    					'month' => 1,
    					'day'   => 1
    				),
    				'before'    => array(
    					'year'  => 2015,
    					'month' => 1,
    					'day'   => 31
    				),
    				'inclusive' => true
    			)
    		)
    	);
    	$query = new WP_Query( $args );
    ?>

    トピック投稿者 toakts0024

    (@toakts0024)

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

    さっそくdate_queryを試した所、希望通りの動作が出来ました!

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

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「filter_whereで今月の記事のみ表示したい」には新たに返信することはできません。