【WordPress】パスワードの文言をカスタマイズしたら送信後エラーになる時の対処法
うっかりハマってしまったので備忘録に。
パスワードの「保護中」という文字を消したり、文言を変更する時は以下のコードをfunctions.phpに入れるのですが。
//「保護中」を消す
add_filter('protected_title_format', 'remove_protected');
function remove_protected($title) {
return '%s';
}
//パスワードの文言を変更
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__("OK") . '" />
</form>';
}
add_filter('the_password_form', 'my_password_form');
これを入れてページは無事にカスタマイズができるのですが、送信後にエラーページ(ページが見つかりません)に飛んでしまいました。
スポンサーリンクプラグイン『SiteGuard WP Plugin』を入れているとエラーになるっぽい
文言を変更しなければ普通にページが開いたので、パスワードを送信する時のURLを見てみるとどうやら「wp-login.php」が問題だったっぽいです。
私は上のプラグインを入れているので、ログインページがあの数字のURLに変更になっています。
なのでそれに合わせると問題なく表示されるようです。
対処法:.htaccessを開いて以下の部分を確認
FTPソフトなどで.htaccessを開いて(一番最初のところにあると思います)、「#SITEGUARD_PLUGIN_SETTINGS_START」を探します。
その中で「RewriteRule ^login_XXXXX(数字)」という項目があるので、「login_XXXXX(数字)」の部分をコピペします。
またfunctions.phpに戻り、formの中のURLを以下の通り変更します。(XXXXXを数字に変更)
<form class="post_password" action="' . home_url() . '/login_XXXXX?action=postpass" method="post">
これで解決!
全然対策の記事が引っかからなかったので本当に悩んだ……。
こちらの記事も読まれています
コメントや誤字脱字報告などお気軽にどうぞ*
※悪口系は弾かれて届かない場合があります。
その他お問い合わせはメールフォームへお願いします。