---
title: "wp_login_url() &#8211; WordPressにログインするためのURLを出力する関数"
canonical_url: "https://olein-design.com/blog/wp_login_url"
language: "ja"
date_published: "2024-05-07T10:00:00+09:00"
date_modified: "2024-05-10T14:09:12+09:00"
content_type: "post"
author: "久野晃司"
taxonomies:
  category:
    - "WordPress"
  post_tag:
    - "General Template Tag"
    - "WordPress functions"
---

# wp_login_url() &#8211; WordPressにログインするためのURLを出力する関数

WordPress からログアウトする URL を出力する関数 `wp_logout_url()` の記事を[こちら](https://olein-design.com/blog/wp_logout_url)に書きましたが、今回はそのログイン版とも言えるであろう、ログイン URL を出力する関数 `wp_login_url()` を調べていきます。

## wp_login_url() 関数とは

ログイン URL を取得します。`wp_logout_url()` にとても似ていますね。しかし、返り値は HTML エンコードされていないことに注意が必要です。

[埋め込みコンテンツ](https://olein-design.com/blog/wp_logout_url)

## パラメーター

| `$redirect` | ログインした際のリダイレクト先へのパスを設定できます。しかし、 `https://sample.com/mypage/` のような絶対値でなければなりません。 |
| --- | --- |
| `$force_reauth` | クッキーが存在する場合でも、再認証するかどうかを設定できます |

## 使い方

基本的にはこのような形で使うことが多いでしょう。

```
echo '<a href="' . wp_login_url() . "\">ログイン</a>";
```

ログインしているユーザーに表示しても意味がないので、`wp_logout_url()` の時と似た形で分岐すると良いでしょう。

```
if ( ! is_user_logged_in() ) {
	echo '<a href="' . wp_login_url() . "\">ログイン</a>";
}
```

第一引数に URL を指定することで、ログインした後のリダイレクト先を指定することができます。

```
if ( ! is_user_logged_in() ) {
	echo '<a href="' . wp_login_url( home_url( '/sample/')) . "\">ログイン</a>";
}
```

第二引数では、ブラウザでクッキーがログイン情報を記憶していても再認証するかどうかを指定することができます。再認証させるためには `true` を指定します。デフォルトは `false` です。

```
if ( ! is_user_logged_in() ) {
	echo '<a href="' . wp_login_url( home_url( '/sample/' ), true ) . "\">ログイン</a>";
}
```

## フック

### login_url

```
apply_filters( ‘login_url’, string $login_url, string $redirect, bool $force_reauth )
```

ログイン URL にフィルターすることができます。

第一引数には `$login_url` で URL を取得できます。第二引数では `$redirect` でリダイレクト先を取得できます。第三引数には `$force_reauth` でクッキーが存在していたも再認証するかどうかの設定を取得できます。

以下のソースコードで動作を確認できます。遊んでみてください。

```
add_filter(
	'login_url',
	function ( $login_url, $redirect, $force_reauth ) {
		echo '<hr>' . basename(__FILE__) . ' :: ' . __LINE__;
		echo( '<pre>' );
		var_dump( $login_url, $redirect, $force_reauth );
		echo( '</pre>' );
		echo '<hr>';
	},
	10,
	3
);
```

## まとめ

多くのユーザーが参加するウェブサイトを WordPress で構築する際には、必ずと言っていいほどログインやログアウトへのアクセス方法を管理したくなります。

その際に、`wp_login_url()` や `wp_logout_url()` の挙動を知っておくだけで、スムーズな設計をすることができます。また、特徴やフックも触っておくことで、動的な管理をする際にも役立つでしょう。

ぜひ色々と遊んでみてください。

[埋め込みコンテンツ](https://developer.wordpress.org/reference/functions/wp_login_url)
