一人で管理しているWordPressサイトでは、パスワード再発行機能を使う事って殆ど無い事からこの機能を無効にしてみようと思います。方法としては、wp-login.phpには触らずに出来る方法を検討してみました。
CSSで表示を消してみる
とりあえず表示から消して見ました。下記コードをfunctions.phpに追加します。
追加すると wp-login.php の head にスタイルが追加されます。
リンクの表示は消えますが、ソースには残っていますのでパスワードの再発行も出来ます。
function login_css() { echo '<style type="text/css">#login #nav{display:none;}</style>'."\n"; } add_action('login_head', 'login_css');
海外フォーラムに乗ってたコードを試してみた
下記コードをfunctions.phpに追加します。
パスワード再発行画面で、メールを入力して「新しいパスワードを取得」をクリックしてもメールが送信されなくなります。
function disable_password_reset() { return false; } add_filter ( 'allow_password_reset', 'disable_password_reset' );
htaccessでリダイレクト
最後に htaccess でリダイレクトさせて見ました。
URLが wp-login.php?action=lostpassword ならば、wp-login.php にリダイレクトさせます。
※サーバで mod_rewrite が使える場合。
URLが wp-login.php?action=lostpassword ならば、wp-login.php にリダイレクトさせます。
※サーバで mod_rewrite が使える場合。
RewriteEngine On RewriteCond %{QUERY_STRING} ^action=lostpassword$ RewriteRule ^wp-login.php$ wp-login.php? [R=301,L]
以上
使用の場合は、十分にテスト・検証をして下さい。