脱公務員のWeb制作フリーランスライフ

【WordPress】パスワード保護で送信後にエラーになる時の対処法

WordPress

こんにちは、つばさです。

この記事は、

考えている男の子

WordPressで、パスワードのメッセージをカスタマイズしたら送信後に404ページに飛ばされる。原因がわからない。

こういった方向けです。

本記事の内容

  • パスワード保護でエラーになる原因
  • エラーになった時の対処法

パスワード保護のメッセージをカスタマイズしたらエラーが起きる時の対処法を解説します。

パスワード保護で送信後にエラーになる原因を解説

パスワード保護に苦しむ女の子

結論、セキュリティ保護のプラグイン「SiteGuard WP Plugin」が原因である可能性があります。

パスワード保護のメッセージをカスタマイズする際にfunctions.phpに/wp-login.php?action=postpassを記述しているかと思います。「SiteGuard WP Plugin」でログインURLを変更するとこの記述を変更する必要があります。

下記で具体的に解説していきますね。

パスワード保護のメッセージをカスタマイズすることがエラーの引き金に

メッセージのカスタマイズで下記のように記述しているかと思います。

functions.php

function my_password_form() {
  return
    '<p>メッセージ変更内容</p>
    <form class="post_password" action="' . home_url() . '/wp-login.php?action=postpass" method="post">
      <input name="post_password" type="password" size="24" />
            <input type="submit" name="Submit" value="' . esc_attr__("パスワード送信") . '" />
    </form>';
}
add_filter('the_password_form', 'my_password_form');

4行目/wp-login.php?action=postpassでパスワード入力後のリンク先をいれてますね。

パスワード保護のカスタマイズ後に、「SiteGuard WP Plugin」でURLを変更するとエラーになる

このプラグインはWordPressの管理画面のURLを変更できます。ただ、注意が必要で、上のリンク先と相違が生まれて画面が真っ白になったり404ページに飛ばされたりします。

パスワード保護で送信後にエラーになってしまったときの対処法

OKのポーズをしている女の子

.htaccessを開いて該当箇所をコピー

.htaccessを開いて「 RewriteRule ^login_●●●(.*)$ wp-login.php$1 [L] 」という記述を探してみてください。見つけたら、●●●をコピーします。

functions.phpに該当箇所を貼り付ける

先程のfunctions.phpの4行目、/wp-login.php/login_●●●に修正してください。
下記のようになりますね。

functions.php

function my_password_form() {
  return
    '<p>メッセージ</p>
    <form class="post_password" action="' . home_url() . '/login_●●●?action=postpass" method="post">
      <input name="post_password" type="password" size="24" />
            <input type="submit" name="Submit" value="' . esc_attr__("パスワード送信") . '" />
    </form>';
}
add_filter('the_password_form', 'my_password_form');

これで完了です。お疲れ様でした。