All-in-One Event Calendar まとめ最後です。
前回の記事まででイベントの登録とプラグインに用意されているカレンダーページの表示まではできました。 でも、案件では、アーカイブページのようなイベントを抽出して一覧を出すページが必ずと言っていいほどあると思います。

今回の案件では、トップページにイベントのタブを表示しました。

  • タブ1 表示条件:全イベント and 当日以降のイベント and カテゴリー毎にアイコン出し分け
  • タグ2 表示条件:カテゴリA and 当日以降のイベント
  • タグ3 表示条件:カテゴリB and 当日以降のイベント
  • タグ4 表示条件:カテゴリC and 当日以降のイベント
  • タグ5 表示条件:カテゴリD and 当日以降のイベント

タブ1:全イベントの一覧を表示する

All-in-One Event Calendar は、カスタム投稿として”postsテーブル”に情報を保持しますが、記事とは別に”ai1ec_eventsテーブル”にイベントの情報を持っています。なので、抽出の際には、この二つのテーブルを結合してから抽出します。

[crayon attributes]
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 ASC “); if ($events) :?>