概要
tec_events_integrations_{$integration_type}_{$integration_slug}_events_schema_is_needed
フィルタは、The Events Calendarプラグインにおいて、特定の統合のイベントスキーマが必要かどうかを判断するために使用されます。このフィルタを使うことで、次のような機能を実装することができます。
- 特定の統合のスキーマの有効化/無効化
- カスタムイベントのメタデータを管理
- イベントの表示条件をフィルタリング
- SEO最適化のための動的スキーマの制御
- 他のプラグインとの互換性を持たせる
- エンドユーザーに特化した出力を提供する
構文
add_filter('tec_events_integrations_{$integration_type}_{$integration_slug}_events_schema_is_needed', 'your_function_name', 10, 3);
- {$integration_type}: 統合のタイプ(例: Google Calendar)
- {$integration_slug}: 統合のスラッグ(例: google)
- your_function_name: フィルタを処理するユーザ定義関数
パラメータ
- $is_needed (bool) – スキーマが必要かどうかのフラグ。
- $event (object) – イベントオブジェクト。
- $args (array) – その他の引数。
戻り値
- (bool)
$is_needed
フラグ。true
の場合はスキーマが必要、false
の場合は不要。
バージョン情報
- The Events Calendar バージョン: 6.0以上
- WordPress バージョン: 5.0以上
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | 〇 |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプル1: スキーマを常に必要とする
このコードは、特定の統合に対して常にスキーマが必要であることを示します。
add_filter('tec_events_integrations_google_google_events_schema_is_needed', '__return_true');
このサンプルは、Google統合においてイベントスキーマを常に必要とする設定を行っています。
出典: https://theeventscalendar.com/
サンプル2: 特定の条件でスキーマを無効化
このコードは、特定のイベントカテゴリーの場合にスキーマを無効化します。
add_filter('tec_events_integrations_google_google_events_schema_is_needed', function($is_needed, $event) {
if (has_term('no-schema', 'tribe_events_cat', $event)) {
return false;
}
return $is_needed;
}, 10, 2);
このサンプルは、特定のカテゴリーのイベントではスキーマを無効にしています。
出典: https://theeventscalendar.com/
サンプル3: スキーマの動的制御
このコードは、ユーザーのロールに基づいてスキーマの有無を制御します。
add_filter('tec_events_integrations_google_google_events_schema_is_needed', function($is_needed) {
return current_user_can('administrator') ? true : false;
});
このサンプルは、管理者のみスキーマを必要とする条件を設定しています。
出典: https://theeventscalendar.com/
サンプル4: 特定のフィールドをスキーマに追加
このコードは、スキーマに特定のメタフィールドを追加します。
add_filter('tec_events_integrations_google_google_events_schema_is_needed', function($is_needed, $event, $args) {
$args['custom_field'] = get_post_meta($event->ID, 'custom_meta_key', true);
return $is_needed;
}, 10, 3);
このサンプルは、指定されたメタデータをスキーマに追加しています。
出典: https://theeventscalendar.com/
サンプル5: スキーマの条件をイベントの開催日時に基づいて変更
このコードは、イベントの開催日時に基づいてスキーマの必要性を制御します。
add_filter('tec_events_integrations_google_google_events_schema_is_needed', function($is_needed, $event) {
if (strtotime($event->event_start) < time()) {
return false; // 過去のイベントはスキーマが不要
}
return $is_needed;
}, 10, 2);
このサンプルは、過去のイベントに対してスキーマを無効にしています。
出典: https://theeventscalendar.com/