5.7の新機能:AJAXでパスワードを取得

説明

日本時間の今朝「WordPress 5.7 Beta 3(以降Beta 3)」が予定通り公開されました。今回は、ソースコードを眺めていた時に気になったパスワードを取得できるAJAXについて確認した。

はじめに、この記事は公開された5.7 Beta 3をもとにしており、正式リリースの際に変更される可能性があることを予めお断りする。

ログイン時は無効

まずは実際に新しく追加されたAJAXをのURLにアクセスしてみる。

http://localhost/wp-admin/admin-ajax.php?action=generate-password

アクセスしたユーザーがログインしていない場合は、次のようなJSONデータがレスポンスとして返ってくる。

{"success":true,"data":"C*FsS525pBj5uB0bTh1TuZkx"}

dataプロパティの内容がパスワードであり、英数記号による24字のパスワードがランダムに生成されている。

このパスワードを取得できるAJAXは次のように登録されており、ユーザーがログインされていない場合のみ機能するようになっている。

add_action( 'wp_ajax_nopriv_generate-password', 'wp_ajax_nopriv_generate_password' );

今度はログインした後にさきほどのAJAXのURLにアクセスする。今回のレスポンスは 0 となり、パスワードのJSONデータは返ってこない。

このAJAXはどこで使う?

さて、パスワードを取得できるAJAXだが、パスワードリセット時に新しいパスワードを設定する画面で使用されている。tracで関連トピックを探してみると、4年以上前に提案された「Reset Password Page UX」にもとづいて「Generate Password」ボタンが追加され、そのボタンが押されると新しいパスワードを取得する仕組みが導入されている。

個人的には普段ほとんど見ることがない画面だが、5.7ではこんなところも改良されているんですね。


最終更新 : 2021年02月17日 11:48

お勧め

get_next_post(2018年5月27日 更新)

object get_next_post( [ bool $in_same_cat$in_same_term = false [ , string $excluded_categoriesmixed $excluded_terms = '' [ , string $taxonomy = 'category' ] ] ] )
1つ後の投稿情報を取得する。

wp_loginout(2018年5月27日 更新)

void wp_loginout( [ string $redirect = '' ] )
閲覧者がログインしているかどうかを調べ、ログインしていなければログインページのリンクを、ログイン済みならばログアウトページのリンクを表示する。

get_terms(2020年12月14日 更新)

array get_terms( mixed $args = array(), mixed $deprecated = '' mixed $taxonomies, [ mixed $args = '' ] )
条件を指定してタクソノミー情報を検索し、マッチしたすべてのデータを取得する。

wp_localize_script(2018年5月27日 更新)

bool wp_localize_script( string $handle, string $object_name, array $l10n )
スクリプト向けの変数を追加する。

get_post_status_object(2014年10月9日 更新)

object get_post_status_object( string $post_status )
投稿ステータス情報を取得する。