【WordPress】管理画面ログインURLを変えている場合、パスワード保護ページでパスワード入れるとトップページに遷移してしまうエラーを解決したメモ

管理画面に入った状態でパスワード保護のページにパスワード入力して入れてたから気づかなかった。
管理画面に入らず、普通にサイトを閲覧し、パスワード保護のページでパスワードを入力、送信すると、あら不思議、トップページに遷移してしまう。

そんなエラーが発生したので解決した内容をメモしておく。

パスワード保護部分をカスタマイズ、functions.phpに変更したログインURLで書き換える。

パスワード保護の文言やレイアウトを変更するため、functions.phpに記載したりする。
ここのform部分のログインURLを、正しいログインURLに書き換えるだけ。

/* パスワード保護調整 */
function my_password_form() {
  return
    '<p>閲覧するには以下にパスワードを入力してください。</p>
    <form class="post_password" action="' . home_url() . '<ログインURLを記入>?action=postpass" method="post">
    <input class="password_space" name="post_password" type="password" size="24" />
    <input class="password_button" type="submit" name="Submit" value="' . esc_attr__("パスワード送信") . '" />
    </form>';
}
add_filter('the_password_form', 'my_password_form');

はじめは変更前のログインURLの
<form class=”post_password” action=”‘ . home_url() . ‘/wp-login.php?action=postpass” method=”post”>
となっているので、「/wp-login.php」の部分を、変更・調整した正しい管理画面へのログインURL「/hoge/hoge-login.php」に書き換える。
ここに管理画面に入るためのログインURLを記述しても一般の人は入れないし、URLもパスワード保護しているページのURLが表示されるのでご心配なく。

プラグイン『SiteGuard WP Plugin』を入れているとエラーになるっぽい

私はこの事例のエラーではなかったけど、このプラグインを使っている人はよく引っかかってエラーになってるっぽい。
.htaccessの「RewriteRule ^login_XXXXX(数字)」をさきほどの「/wp-login.php」から「login_XXXXX(数字)」に書き換えると解決するらしいよ。

まとめ

ログインURLを変更している場合、違うログインURLをたたくとトップページに遷移する仕様になっている。
今回のエラー、パスワード保護ページでパスワードを入力するとトップページに遷移したため、「ログインが関係しているのでは?」と、エラーの原因に気づけた気がする。

WP、何かを変えると何かが引っかかるというのはあるあるな気がする。
プラグインを入れると特によくガッチャンコするイメージなので、なるべくプラグイン使わずうまく運用していきたい。