概要
elementor/maintenance_mode/is_login_page
フィルタは、Elementor プラグイン内でユーザーがログインページにいるかどうかを判断する際に利用されるフックです。このフィルタを使用することで、特定の条件下でログインページであるとクリアに判別したり、他の処理を適用することができます。主に、メンテナンスモードやカスタムログインページの実装時に便利です。
このフィルタは以下のような機能を実装する際によく使われます:
- カスタムログインページにメンテナンスモードを適用する。
- ログインページへのリダイレクト処理を追加する。
- 特定のユーザー権限を持つユーザーをメンテナンスモードから除外する。
- ログインフォーム周辺にカスタムメッセージやデザインを追加する。
- 不正アクセスの試行を制限する。
- ログイン時のカスタムリダイレクトを実装する。
構文
add_filter('elementor/maintenance_mode/is_login_page', 'custom_is_login_page', 10, 2);
パラメータ
$is_login_page
(bool) – 現在のページがログインページであるかどうかを示すブール値。$request
(WP_Request) – 現在のリクエストオブジェクト。
戻り値
- ログインページである場合は true、それ以外は false。
使用可能なバージョン
- Elementor バージョン: 3.0.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('elementor/maintenance_mode/is_login_page', function($is_login, $request) {
// 特定のカスタムURLがログインページの場合をカスタマイズ
if ($request->get_path() === '/custom-login') {
return true;
}
return $is_login;
});
このコードは、カスタムログインページ(/custom-login
)をログインページとして認識させるものです。
サンプル2
add_filter('elementor/maintenance_mode/is_login_page', function($is_login, $request) {
// ユーザーが特定のトークンを持っているとき、ログインページとみなす
if ($request->get('token') === 'special_token') {
return true;
}
return $is_login;
});
このコードは、特定のトークンがURLに含まれる場合、ログインページと認識します。
サンプル3
add_filter('elementor/maintenance_mode/is_login_page', function($is_login, $request) {
// 管理者がログインページにアクセスしている場合はtrue
if (current_user_can('administrator')) {
return true;
}
return $is_login;
});
管理者ユーザーがログインページにアクセスした場合、常にログインページとして認識させるコードです。
サンプル4
add_filter('elementor/maintenance_mode/is_login_page', function($is_login, $request) {
// もしリクエストがAJAXの場合、ログインページと認識しない
if ($request->is_ajax()) {
return false;
}
return $is_login;
});
AJAXリクエストに対しては、ログインページとして認識させないコードです。
サンプル5
add_filter('elementor/maintenance_mode/is_login_page', function($is_login, $request) {
// もしリクエストのリファラーが特定のドメインからであれば、ログインページとみなす
if ($request->get_header('referer') == 'https://example.com/') {
return true;
}
return $is_login;
});
特定のリファラーからのリクエストに対して、ログインページとして扱うコードです。