---
title: "wp_lostpassword_url() &#8211; パスワードをリセットするためのURLを出力する関数"
canonical_url: "https://olein-design.com/blog/wp_lostpassword_url"
language: "ja"
date_published: "2024-05-10T09:55:20+09:00"
date_modified: "2024-05-10T14:13:00+09:00"
content_type: "post"
author: "久野晃司"
taxonomies:
  category:
    - "WordPress"
  post_tag:
    - "General Template Tag"
    - "WordPress functions"
---

# wp_lostpassword_url() &#8211; パスワードをリセットするためのURLを出力する関数

WordPress のログイン画面で「パスワードをお忘れですか？」というリンクを見た覚えがある方はいませんか？パスワードを忘れてしまった時やリセットしたいときにアクセスすることがあると思います。

そのための URL を出力する関数が `wp_lostpassword_url()` です。詳しく見ていきましょう。

## wp_lostpassword_url() 関数とは

ユーザーが紛失したパスワードをリセットできる URL を返します。

## パラメーター

| `$redirest` | ログイン時にリダイレクトするパスを設定可能 |
| --- | --- |

## 使い方

基本的には URL を取得して、それを利用する形になるでしょう。

```
$lost_password = esc_url( wp_lostpassword_url() );
echo '<a href="' . $lost_password . '">Lost your password?</a>';
```

また、処理後のリダイレクト先を指定することができます。

```
$lost_password = esc_url( wp_lostpassword_url( home_url() ) );
echo '<a href="' . $lost_password . '">Lost your password?</a>';
```

## フック

### lostpassword_url

```
apply_filters( ‘lostpassword_url’, string $lostpassword_url, string $redirect )
```

第一引数に `$lostpassword_url`、第二引数に `$redirect` を持ちフィルターすることができます。

以下のコードで試すことができます。ログイン画面に出力を確認することができます。

```
add_filter(
	'lostpassword_url',
	function ( $lostpassword_url, $redirect ) {
		echo '<hr>' . basename(__FILE__) . ' :: ' . __LINE__;
		echo( '<pre>' );
		var_dump( $lostpassword_url, $redirect );
		echo( '</pre>' );
		echo '<hr>';

		return $lostpassword_url;
	},
	10,
	2
);
```

## まとめ

出力されたままの URL はサニタイズされていないので、適宜 `esc_url()` などで処理すると良いでしょう。

この関数が使われているログインフォーム関連のソースコードを読むと学びが深そうです。

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