xo_event_calendar_events フック

説明

カレンダーのイベントをフィルターします。

使い方

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 );