2011/10/22

WordPressのループで今日の日付以降的な処理

お知らせとかは最新10件とか表示すれば良いですが、イベント情報は、直近の10件とか表示したくなりますよね。ただこれデフォルトではできないと思うので、ちょっと工夫が必要です。下記では2011.10.22-25みたいな形式でイベントの日付をカスタムフィールドで管理している場合の例です。

$parm = array(
‘cat’=>$catid,
‘showposts’=>1000,
‘orderby’=>meta_value,
‘meta_key’=>event_date,
‘order’=>ASC
);
$my_query = new WP_Query($parm);
if($my_query->have_posts()) :
$cnt = 0;
while ($my_query->have_posts() && ($cnt < 10)) : $my_query->the_post();
$event_date = get_post_meta($post->ID,’event_date’,TRUE);
$date = substr($event_date,0,10);
$today = date(‘Y.m.d’);
if($today <= $date): 記事表示処理 $cnt++; endif; endwhile; [/php] 本当はWP_Queryのところで、条件指定できなきゃいかんのでしょうが、イベントの日付にカスタムフィールドを使っているので、なかなか上手い具合に解決法が見つからず、とりあえず、100件取得して、そこから、今日以降の10件で取り出すやり方してます。 なんかもっと上手い方法がある気もするんですけどね。。。

ひとり仕事: フリーランスという働き方
(2012-10-5)
売り上げランキング: 14,705
100円
WordPressデザインレシピ集
狩野 祐東
技術評論社
売り上げランキング: 197,569
WordPress 高速化&スマート運用必携ガイド
こもりまさあき 岡本渉
エムディエヌコーポレーション
売り上げランキング: 435,263