WordPressでユーザー登録後にログイン画面に表示されるメッセージ「登録を完了しました。メールを確認してください。」の文章を変更する方法

WordPressでプラグイン専用フォーラムを作った時に実装したんですが、ユーザー登録は承認制に設定して、管理者側で承認を許可・拒否できるように作られています。

それで、今度はユーザー登録後にログイン画面に表示される「登録を完了しました。メールを確認してください。」というメッセージを変更したいと思いました。(「WordPress英語版だと Registration complete. Please check your e-mail.」というメッセージが表示されます

ユーザー登録後に表示されるメッセージ

以下は表示例です。メッセージに注目すると、承認制としているのに「登録を完了しました」っていうのは、ちょっと辻褄が合わないですね。

下のような表記にすると、少しは意味が通じると思います。

・・という調子で、メッセージを変更する方法を書きました。もし機会がありましたら、ご参考ください。

ユーザー登録後のログイン画面に表示されるメッセージを変更する方法

こちらのサイトを参考にすると、フィルターフック「wp_login_errors」を使うと変更可能のようです。参考サイトをまるまるコピペですが、以下のコードをご参考ください。

add_filter( 'wp_login_errors', 'override_reg_complete_msg', 10, 2 );
function override_reg_complete_msg( $errors, $redirect_to ) {
 if( isset( $errors->errors['registered'] ) ) {
  $needle = __('Registration complete. Please check your e-mail.');
  foreach( $errors->errors['registered'] as $index => $msg ) {
   if( $msg === $needle ) {
    $errors->errors['registered'][$index] = 'ユーザー登録承認後、ログイン用パスワードを送付しますので、今しばらくお待ちください。';
   }
  }
 }
 return $errors;
}

上のコードがやっていること

ユーザー登録後に表示されるメッセージで「__(‘Registration complete. Please check your e-mail.’)」にあたる部分が見つかった場合は、任意の文字列「ユーザー登録承認後、ログイン用パスワードを送付しますので、今しばらくお待ちください。」に差し替えるように書かれてる、って感じだろうと思います・・・たぶん。

add_filterについて

add_filterに設定しているパラメーターについては「関数リファレンス/add filter」をご参考ください。特に私は「これ何を設定するんだっけ・・・」と忘れがちになっちゃうんですが、パラメーターの「$priority」と「$accepted_args」については、

  • $priority・・・関数実行の優先順位。数字が小さいほど優先度高い。数字が同じ場合は追加された順に実行(初期値:10)
  • $accepted_args・・・関数が受け取る引数の数。1.5.1 以降は対応する do_action() あるいは apply_filters() を実行するとき、フックした関数がさらに引数を取ることができる(初期値:1)

と、add_filterを使う時には個人的には気を付けないとな~って感じです。

まとめ

ユーザー登録後のメッセージを変更する方法を書きました。細かいことですが、この部分は変更できないと意味が通じない箇所だったので、変更できて良かったです。「ユーザー登録後に表示されるメッセージを変えたい!」という場合にはご参考くださいますと嬉しいです。

著者:bouya Imamura