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を使う時には個人的には気を付けないとな~って感じです。
まとめ
ユーザー登録後のメッセージを変更する方法を書きました。細かいことですが、この部分は変更できないと意味が通じない箇所だったので、変更できて良かったです。「ユーザー登録後に表示されるメッセージを変えたい!」という場合にはご参考くださいますと嬉しいです。
このページを共有する