Event Organiser で、管理画面から過去のイベントを表示するかどうかを一括して設定することはできますが、「過去のイベントを表示はするけど、申し込みフォームと残りの座席数は表示したくない」なんてことがあります。
それも Event Organiser の予約システムを利用していればいろいろと設定はあるのでしょうが、他にいろいろと設定項目が必要で、オリジナルの予約フォームを設けている場合なんてのも少なくありません。
そうすると「このイベントが過去のイベントかどうか」の判定をしなければならなくなります。
通常の記事投稿であれば
<?php $TODAY = strtotime(date('Y-m-d')); function check_past_post($date) { global $TODAY; $date = strtotime($date); $daydiff = ($TODAY - $date) / 86400; return $daydiff; }
みたいな感じでfunction.phpに関数を作って、呼び出し側で
<?php check_past_post( get_post_time('Y-m-d') ) ?>
みたいに呼び出せば良いと思うのですが、これを Event Organiser 用にアレンジするとこんな感じかな
<?php // 過去イベントの判定 $TODAY = strtotime(date('Y-m-d')); function check_past_event($date) { global $TODAY; $date = strtotime($date); $daydiff = ($TODAY - $date) / 86400; //(60 * 60 * 24) if( $daydiff > 0 ){ return TRUE; }else{ return FALSE; } } ?>
<?php if(check_past_event( eo_get_the_start('Y-m-d') )) { ?>
※この場合、イベントの開始日で判定しています。
そもそも Event Organiser には豊富に関数が用意されているので、eo_is_past() のような関数があるんじゃないかと思ったんですけど発見できず。
もしも、ご存じの方がいらっしゃったら教えてください。