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()
などで処理すると良いでしょう。
この関数が使われているログインフォーム関連のソースコードを読むと学びが深そうです。