Posted at

WordPress 4.3 以降で自動生成されるパスワード、長くない? (この件をfunctions.phpでなんとかする)

More than 3 years have passed since last update.


あらまし

デフォルトで24文字って、長くね?(再発行の場合は16文字)

もちろんパスワードはセキュリティ上、長くて複雑な方がいい。

だが、ITに詳しくないユーザが集まる会員制サイトにて運用するとなると、

「パスワードが長くて覚えられないの」という(かなしい)苦情が来そう。

かといって、コピペを教えるのはアレすぎる。

なので妥協点として短くしてみた。12文字が許容範囲かなぁと思いつつ。

パスワードチェッカーも黄色くならないし。


functions.phpに追加するコード

 // 各所のパスワードの最大長を変更

function edit_password_length() {
$length = 12; //文字列の長さ
?>
<script type="text/javascript">
jQuery(function() {
jQuery('#pass1').attr('data-pw','<?php echo wp_generate_password( $length ); ?>');
});
</script><?php
}
//管理画面->ユーザ->新規追加
add_action( 'user_new_form', 'edit_password_length' );
//管理画面->ユーザ->あなたのプロフィール
add_action( 'show_user_profile', 'edit_password_length' );
//パスワード再発行
add_action( 'resetpass_form', 'edit_password_length' );


正味な話

jQueryDOM操作に頼る力技。

attrでパスワード文字列を変数に取得して刈り取れば、途中でwp関数に頼らずとも行けるが、パスワードを変数に格納するのはなんか嫌。

パスワード生成周りで便利なフックでもあればなあ……と思ったら結局なかった。