説明
カレンダーのイベントをフィルターします。
使い方
add_filter( 'xo_event_calendar_events', 'my_xo_event_calendar_events', 10, 3 );
パラメータ
- $events
- (配列) イベント情報(イベントの投稿とカスタムフィールド)の配列
-
- ‘post’ (イベント投稿のオブジェクト)
- ‘title’ (イベントタイトル)
- ‘start_date’ (イベント開始日時)
- ‘end_date’ (イベント終了日時)
- ‘bg_color’ (背景色)
- ‘permalink’ (イベント投稿の URL)
- ‘short_title’ (イベントショートタイトル)
- ‘category’ (イベントカテゴリーのスラッグ)
- $args
- (配列) カレンダーの取得に使用される引数の配列
-
- ‘id’ (カレンダー ID)
- ‘show_event’ (イベントの表示/非表示)
- ‘categories_string’ (表示するカテゴリーの文字列)
- ‘holidays_string’ (表示する休日の文字列)
- ‘prev_month_feed’ (前月への月送りできる月数)
- ‘next_month_feed’ (次月への月送りできる月数)
- ‘start_of_week’ (週の開始曜日)
- ‘months’ (表示する月数)
- ‘navigation’ (月送りナビゲーションの表示/非表示)
- ‘year’ (年)
- ‘month’ (月)
- $month_index
- (数値) 月番号 (1~月数)
用例
イベントを前月と次月に跨らないように表示する
例では、ID が xo-event-calendar-1 のカレンダーを対象としてします。
function my_xo_event_calendar_events( $events, $args, $month_index ) {
if ( 'xo-event-calendar-1' == $args['id'] ) {
$s = strtotime( "{$args['year']}-{$args['month']}-1" );
$e = strtotime( date( 'Y-m-t', $s ) );
foreach( $events as $key => $value ) {
if ( $s > strtotime( $value['start_date'] ) ) {
$events[$key]['start_date'] = date( 'Y-m-d', $s );
}
if ( $e < strtotime( $value['end_date'] ) ) {
$events[$key]['end_date'] = date( 'Y-m-d', $e );
}
}
}
return $events;
}
add_filter( 'xo_event_calendar_events', 'my_xo_event_calendar_events', 10, 3 );