【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ページに飛ばされたりします。
パスワード保護で送信後にエラーになってしまったときの対処法
.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');
これで完了です。お疲れ様でした。