この記事は最後に更新してから1年以上経過しています。

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_post_time(2018年5月27日 更新)

mixed get_post_time( [ string $d = 'U' [ , bool $gmt = false [ , mixed $post = null [ , bool $translate = false ] ] ] ] )
パラメータ$dで指定されたフォーマットに従って投稿データの投稿時刻を取得する。

has_tag(2012年1月17日 更新)

bool has_tag( [ mixed $tag = '' [ , mixed $post = null ] ] )
投稿記事に投稿タグが付属しているか調べる。

delete_term_meta(2018年5月27日 更新)

bool delete_term_meta( int $term_id, string $meta_key [ , mixed $meta_value = '' ] )
タームのメタ情報を削除する。

wp_save_post_revision(2023年4月3日 更新)

int | WP_Error | void wp_save_post_revision( int $post_id )
現状の投稿のリビジョンを作成する。

safecss_filter_attr(2023年3月31日 更新)

string safecss_filter_attr( string $css [ , string $deprecated = '' ] )
インラインスタイルをサニタイズする。