概要
tec_events_rewrite_dynamic_matchersフィルタは、WordPressのプラグイン「The Events Calendar」で使用されるフックで、イベントのリダイレクトやURLのマッチングのカスタマイズを行うために使用されます。このフィルタを利用することでデフォルトの動作を変更し、特定の条件に応じた新しいURL構造を設定することが可能になります。通常、このフィルタは以下のような機能を実装する際によく使われます。
- イベントのカスタムURLパターンの設定
- 特定のリダイレクト条件の追加
- クエリ変数の追加や変更
- イベントアーカイブのURL変更
- 404エラーページに対する特別な対応
- クエリプロセッシングの最適化
構文
add_filter('tec_events_rewrite_dynamic_matchers', 'your_custom_function');
パラメータ
array $matchers: 変更対象のマッチャー情報の配列。
戻り値
array: 改変されたマッチャー情報の配列。
互換性
- プラグイン「The Events Calendar」: 5.x 以降
- WordPressのバージョン: 4.x 以降
この関数のアクションでの使用可能性
| アクション | 使用例 |
|---|---|
| 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: 特定のURLスラッグを変更する
このコードは、特定のイベントタイプのURLスラッグをカスタマイズしています。
add_filter('tec_events_rewrite_dynamic_matchers', function($matchers) {
$matchers['custom_event'] = 'custom-event-slug';
return $matchers;
});
引用元: https://theeventsCalendar.com/docs/
サンプルコード2: リダイレクト条件の追加
このコードは、特定のリクエストパラメータに基づいてリダイレクト条件を追加します。
add_filter('tec_events_rewrite_dynamic_matchers', function($matchers) {
if (isset($_GET['event'])) {
$matchers['event'] = 'redirect-event-slug';
}
return $matchers;
});
引用元: https://theeventsCalendar.com/docs/
サンプルコード3: クエリ変数の追加
このコードは、クエリ変数を追加してURLの動的なマッチングを強化します。
add_filter('tec_events_rewrite_dynamic_matchers', function($matchers) {
$matchers['new_var'] = 'new-variable-slug';
return $matchers;
});
引用元: https://theeventsCalendar.com/docs/
サンプルコード4: 404エラーページの対応
このコードは、特定のマッチャーが404エラーを引き起こさないように処理します。
add_filter('tec_events_rewrite_dynamic_matchers', function($matchers) {
if (in_array('not-found', $matchers)) {
unset($matchers[array_search('not-found', $matchers)]);
}
return $matchers;
});
引用元: https://theeventsCalendar.com/docs/
サンプルコード5: イベントアーカイブのURLを変更
このコードは、イベントアーカイブのURLをカスタマイズします。
add_filter('tec_events_rewrite_dynamic_matchers', function($matchers) {
$matchers['events_archive'] = 'events-archive-slug';
return $matchers;
});
引用元: https://theeventsCalendar.com/docs/