概要
wp_login_urlフィルタは、WordPressのログインURLを取得する際にカスタマイズするために使用されます。このフィルタは、サイトでのログインプロセスを管理する際やユーザーエクスペリエンスを向上させるために役立ちます。以下のような機能実装でよく使用されます。
- ログインURLのリダイレクト先を変更
- カスタムログインページのURLを設定
- 特定のユーザーのログインを制御する
- HTTPSでのログインURLを強制する
- ログインURLにクエリパラメータを追加
- ログインフォームのカスタマイズ
- モバイルデバイス向けの特別なログインURLを設定
- プラグインやテーマとの連携によるログインプロセスの拡張
構文
apply_filters( 'wp_login_url', string $login_url, string $redirect = '' );
パラメータ
- $login_url (string): ログインURL。デフォルトはインストールされたWordPressのログインページのURLです。
- $redirect (string): ログイン後にリダイレクトするURL。
戻り値
- (string): フィルタによって変更されたログインURL。
関連する関数
https://refwp.com/?titleonly=1&s=wp_login_url
使用可能なバージョン
wp_login_urlフィルタは、WordPress 1.5以降で利用可能です。
コアファイルのパス
wp-includes/pluggable.php
この関数のアクションでの使用可能性
| アクション | 使用可能性 |
|---|---|
| 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 |
サンプルコード
-
リダイレクト先を変更する
add_filter( 'wp_login_url', 'custom_login_url', 10, 2 ); function custom_login_url( $login_url, $redirect ) { return home_url( '/custom-login' ); }このコードは、デフォルトのログインURLをカスタムログインページに変更します。
-
HTTPSの強制
add_filter( 'wp_login_url', 'force_https_login', 10, 2 ); function force_https_login( $login_url, $redirect ) { return str_replace( 'http://', 'https://', $login_url ); }このコードは、ログインURLを常にHTTPSに強制します。
-
カスタムクエリパラメータの追加
add_filter( 'wp_login_url', 'add_query_param_to_login', 10, 2 ); function add_query_param_to_login( $login_url, $redirect ) { return add_query_arg( 'source', 'custom', $login_url ); }このコードは、ログインURLにカスタムのクエリパラメータを追加します。
-
特定のユーザーのログインを制限
add_filter( 'wp_login_url', 'restrict_login_for_user', 10, 2 ); function restrict_login_for_user( $login_url, $redirect ) { if ( is_user_logged_in() && current_user_can( 'subscriber' ) ) { return home_url(); } return $login_url; }このコードは、特定のロール(この場合はサブスクライバー)に対してログインURLへのアクセスを制限します。
-
モバイルデバイス用の特別なログインURL
add_filter( 'wp_login_url', 'custom_mobile_login_url', 10, 2 ); function custom_mobile_login_url( $login_url, $redirect ) { if ( wp_is_mobile() ) { return home_url( '/mobile-login' ); } return $login_url; }このコードは、モバイルデバイスからアクセスした場合のみ特別なログインURLへリダイレクトします。