wp_login_url()

wp_login_url()
目次

wp_login_url()の用途

wp_login_url() は、WordPressにおけるログインページ(通常は wp-login.php)のURLを取得するための関数です。この関数は、ログインフォームへのリンクやリダイレクト処理に利用されます。

wp_login_url()の使用方法

wp_login_url( string $redirect = '', string $force_reauth = '' )

パラメータ

引数説明
$redirectstring(省略可)ログイン後にリダイレクトさせたいURL。省略するとログイン後は管理画面に遷移します。
$force_reauthstring(省略可)'true' を指定すると、すでにログイン済みでも再認証(ログイン画面の表示)を強制します。

wp_login_url()の使用例

シンプルにログインページへのリンクを取得

echo wp_login_url();
// 出力例: https://example.com/wp-login.php

ログイン後に特定のページに遷移させる

echo wp_login_url(home_url('/my-page'));
// 出力例: https://example.com/wp-login.php?redirect_to=https%3A%2F%2Fexample.com%2Fmy-page

再認証を強制するログインURLを取得

echo wp_login_url('', 'true');

wp_login_url()の利用場面の例

  • 会員制サイトでログインリンクを表示したいとき
  • ログイン後に特定ページ(例:マイページ)へ遷移させたいとき
  • ログイン済みのユーザーにも強制的にログインを促すとき(セキュリティ面で有効)

wp_login_url()の関連関数

関数名用途
wp_logout_url()ログアウト用のURLを取得
wp_register_url()登録ページ(ユーザー登録)のURLを取得
wp_lostpassword_url()パスワードリセットページのURLを取得

wp_login_url()のセキュリティの注意点

ログインURLを公開ページに記載する場合、リダイレクト先URLのバリデーションやnonceトークンの併用が必要なケースがあります。特に外部リンクからログインを促すときは、意図しないリダイレクト先への誘導を防ぐ対策が重要です。

wp_login_url()の処理のコード例

ログイン状態によってログインボタンまたはログアウトボタンを表示する

<?php
if ( is_user_logged_in() ) {
    // ログイン中:ログアウトボタンを表示
    $logout_url = wp_logout_url( home_url() ); // ログアウト後にトップページへ
    echo '<a href="' . esc_url( $logout_url ) . '">ログアウト</a>';
} else {
    // 未ログイン:ログインボタンを表示
    $login_url = wp_login_url( home_url() ); // ログイン後にトップページへ
    echo '<a href="' . esc_url( $login_url ) . '">ログイン</a>';
}
?>

ログインしていない場合にログインページへリダイレクト

たとえば、会員限定ページのテンプレートファイルなどで利用します。

<?php
if ( ! is_user_logged_in() ) {
    // 現在のURLを取得してログイン後に戻れるようにする
    $redirect_url = home_url( add_query_arg( null, null ) );
    wp_redirect( wp_login_url( $redirect_url ) );
    exit;
}
?>

ログインフォームへのリンク(カスタムHTML)

<?php
$login_url = wp_login_url( home_url( '/mypage/' ) );
?>
<a href="<?php echo esc_url( $login_url ); ?>" class="login-btn">ログインはこちら</a>

補足

  • is_user_logged_in():ユーザーがログインしているかどうかを判定する関数。
  • wp_logout_url():ログアウトURLを取得(リダイレクト先指定可能)。
  • home_url()get_permalink()wp_login_url() の引数に渡すことで、ログイン後に任意のページへ戻すことが可能です。
  • セキュリティ対策として esc_url() でURLをサニタイズしましょう。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

初めてホームページを作成したのは1996年。
2000年よりフリーランスで主に中小企業、学校、各種公的団体、個人事業主のWordPressを活用したホームページ制作を行っています。WordPressテーマはそれぞれのクライアントに合わせて作成しています。
WordPressを活用したサイト運営のための情報発信をしていきます。

目次