質問: ユーザーログイン時のパスワード変更 「パスワード変更」ページがあります。ワードプレスを使用しているユーザーlogin first timeがパスワードを生成したときにそのページをリダイレクトする方法はありますか?ありがとう
回答: 多分これはあなたを助けますか? https://stackoverflow.com/questions/4267285/redirect-user-after-first-login-in-wordpress 彼は同様の問題を抱えているようで、1年前にそれを解決しました。彼があなたのアプローチと異なるのは登録後48時間目のリダイレクトです。多分これで十分ですか?そうでない場合 - 私はそれをあなたのやり方でやろうと思っています。---編集さて、私はちょうどあなたが望むものを正確にするものをプラグインにしました:/* plugin name: redirect passwort plugin uri: todo description: todo author: xaedes version: 0.1 author uri: todo license: gpl2 */ function redirect_passwort_profile_update($user_id, $old_user_data) { $user = new wp_user( $user_id ); if( $user->data->user_pass != $old_user_data->user_pass) { //password has changed update_metadata("user",$user_id,"changed_password",true); } } add_action("profile_update", "redirect_passwort_profile_update", 10, 2); function redirect_passwort_login_redirect($redirect_to, $url_redirect_to = '', $user = null) { if( isset($user->id) ) { $changed_password = get_metadata("user", $user->id, "changed_password",true); if( $changed_password != true ) { return get_bloginfo('url') . "/change-your-password-dude/"; } else { return $redirect_to; } } } add_filter('login_redirect', 'redirect_passwort_login_redirect',10,3); function redirect_passwort_password_reset( $user ) { //password has been reset to a random one. so the changed_password meta data should be reset as well if( isset($user->id) ) { delete_metadata("user", $user->id, "changed_password"); } } add_action('password_reset', 'redirect_passwort_password_reset'); パスワットを変更したユーザーに、ユーザーのメタデータ "changed_password"を追加します。ログイン時に、ユーザーのメタデータ "changed_password"が設定されているかどうかを確認し、設定されていない場合はリダイレクトします(したがって、ユーザーは一度でもパスワードを変更していない)。ユーザーのパスワードがランダムなものにリセットされると、ユーザーのメタデータ "changed_password"もリセットされます。