WordPressのAll-In-One Event Calendarは、なかなか便利なプラグインです。
しかしながら、ちょっとカスタマイズするには難しい。
ドキュメントも国内のは少ない。
しかもver2系になってから、
$ai1ec_calendar_helper のクラスの利用がなくなった。。。。
イベントの一覧を取得したいとき、以前のバーションでは
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php global $wpdb; date_default_timezone_set('Asia/Tokyo'); $today =date('YmdHis'); $events = $wpdb->get_results(" SELECT $wpdb->posts.*,{$wpdb->prefix}ai1ec_events.start,{$wpdb->prefix}ai1ec_events.end FROM $wpdb->posts LEFT JOIN {$wpdb->prefix}ai1ec_events ON ($wpdb->posts.ID = {$wpdb->prefix}ai1ec_events.post_id) WHERE $wpdb->posts.post_type = 'ai1ec_event' AND $wpdb->posts.post_status = 'publish' AND {$wpdb->prefix}ai1ec_events.end > $today ORDER BY {$wpdb->prefix}ai1ec_events.start DESC "); if ($events) : foreach($events as $post) { $id = get_the_id(); $event = Ai1ec_Events_Helper::get_event($id); $event_date = date("Y.m.d", $event->start); ?> <div class="font14" style="margin-bottom:5px;"><span class="red"><?php echo $event_date; ?></span><br><span class="white font12"><?php the_title(); ?></span></div> <?php }//foreach ?> <?php endif; ?> |
上記の記述で取得できましたが、ver2系では、$ai1ec_calendar_helper 自体が存在しないので、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?php global $ai1ec_registry; $date_system = $ai1ec_registry->get( 'date.system' ); $search = $ai1ec_registry->get('model.search'); // gets localized time $local_date = $ai1ec_registry->get( 'date.time', $date_system->current_time(), 'sys.default' ); //sets start time to today $start_time = clone $local_date; $start_time->set_time( 0, 0, 0 ); //sets end time to a year from today $end_time = clone $start_time; $end_time->adjust_month( 12 ); $events_result = $search->get_events_between($start_time, $end_time, array(), true); if(!empty($events_result)) { $event_count = '0'; echo '<ul>'; foreach($events_result as $event) { if($event_count < '2') { $event_count ++; $event_long_date = $event->get( 'start' ); $event_date = $ai1ec_registry->get('view.event.time')->get_long_date($event_long_date); $event_title = $event->get( 'post' )->post_title; $postid = $event->get( 'post_id' ); echo '<li>'.$event_date.'<br><a href="'.get_permalink($postid).'">'.$event_title.'</a></li>'; } } echo '</ul>'; } ?> |
この書き方をすると無事に一覧で表示させることができました。