web-dev-qa-db-ja.com

初めてパスワードを設定しているユーザーのためだけにwp-login.phpをカスタマイズする方法は?

管理者として、私が新しいユーザーを作成する場合、私は新しいユーザーにクリックしてwp-login.phpに移動するリンクを電子メールで送信するように選択することができます。 (Wordpressはパスワードをメールで送信していましたが、なぜ彼らがそれを変更したのかわかります!)

ユーザーは、隠しフィールドにユーザー名を記録し、カスタマイズ可能な推奨パスワードを表示するwp-loginに到着します。

私のより簡単に当惑するユーザーの何人かはこれによって混乱します。彼らは生成されたパスワードを理解できないと思っていて、彼らが箱の中で提案されたパスワードをクリックしてそれを彼らが覚えられるものに変えることができることを理解していません。私はいくつかのヘルプテキストを追加したいと思いますそして多分この時点で自動的に提案されたパスワードも選択します。

どのフックがだけがパスワードを設定しているユーザーに表示され、ログインしている他のユーザーには表示されないようにすることができるかわかりません。

どうやってやるの?

3
Victoria

パスワードのリセット画面で、追加のヘルプメッセージボックスを追加できます。

help text

次のように:

 /**
  * Display an extra help message box on the 'reset password' screen
  * 
  * @link http://wordpress.stackexchange.com/a/204429/26350
  */
 add_action( 'validate_password_reset', function( $errors )
 {
    add_action( 'login_message', function( $message )
    {
        // Modify this help message box to your needs:
        $mybox = sprintf( 
            '<br/><p class="message reset-pass">%s</p>',
            __( 'Some help text here!' )
        );

        return $message . $mybox; 
    } );
 } );

ここではlogin_messageフィルタを使用して追加のメッセージボックスを追加します。これはパスワードのリセット画面にのみ表示されます。これはvalidate_password_resetアクションにフックされるためです。

2
birgire

私はこれを使ってしまいました。コアをハッキングすることなく wp-admin/js/user-profile.js で何が起きているのかを修正する方法が他の人に知られていれば、間違いなくハッキングです。 、 私にお知らせください。私はすべてのパスワード強度チェックなどが好きなので、スクリプト全体を登録解除したくはありません。

// add some js to the login page
function squarecandy_login_stylesheet() {
    wp_enqueue_script( 'custom-login-js', get_stylesheet_directory_uri() . '/js/login.js' );
}
add_action( 'login_enqueue_scripts', 'squarecandy_login_stylesheet' );

login.js

jQuery(document).ready(function($){
  // wait half a second so WP can fill the suggestion first
  setTimeout( function(){
    // Switch to the non-visible entry mode
    $('.wp-hide-pw').click();
    // clear the password fields, put the cursor in the field
    $('#pass1, #pass1-text').val('').focus();
  }, 500 );
});
0
squarecandy