概要
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/