ここ最近、「FF7Remake」やら「MHW:IB」の傍らの空き時間で「WordPressサイトの秘匿化チャレンジ」と称した独自プロジェクトをやっているのだが、その中でWordPressのユーザ認証周りの秘匿化が何気に煩雑で、結構な労力を割いている。

 基本、WordPressのユーザ認証周りは、ディスパッチャーである wp-login.php が一手に取り仕切っていて、このPHPファイル一つで、ユーザ登録やログイン・ログアウト、パスワード紛失時のリマインダー等の全処理が行われていると言って過言はない。ある意味、認証処理が一極集中化されていてわかりやすいのではあるが、1ファイルに処理を詰め込み過ぎているだけに、 wp-login.php は結構なボリュームのコード量になっている。何より、WordPressのコアファイルでもあるので、直接手を入れるようなカスタマイズはWordPress自体の更新性が損なわれてしまうので避けた方が良い。そのうえ、準備されている各種フックもどうもかゆいところに手が届いていない感じがして、以前からWordPressのユーザ認証周りってカスタマイズしづらい印象があったのだ。

 そこで、この機にこの wp-login.php の内部処理を全てひも解いて、すべての処理の流れを完全に把握することにした。一旦、「秘匿化チャレンジ」はお休みにして(でも、「FF7Remake」と「MHW:IB」はお休みにはしない)、何だかんだ(「FF7Remake」をクリアしたり)で数週間もかかってしまったが wp-login.php の全処理フローチャート化を行った。
 いやぁ、久々に結構な量のドキュメンテーションしたので疲れたよ……。

 今回、ドキュメントを作成するにあたって、だいぶ深いところまでWordPressのソース読んだのでユーザ認証周りはかなり理解できたと満足している。そして、WordPressって処理シーケンスがよく考えられているなぁ……と、改めてWordPressのコアコミッターの方々にリスペクトできた。

 Webブラウザ越しだと見づらいかもしれないが、一応画像ベースでドキュメントの内容をざっと紹介しておこう。

メインルーチン(前半部)

管理者メールアドレスの検証

パスワードで保護された投稿

ログアウト

パスワード紛失時

パスワードリセット

登録

ユーザーデータプライベートリクエストの認証

ログイン(1)

ログイン(2)

 こんなところだ。他にも wp-login.php 中に定義されている各種ビルトイン関数(login_header()やlogin_footer()等)の解説や、日本語の翻訳テキスト付きのエラーコード一覧なども書いてある。

 自分的には、WordPressカスタマイズ時のチートシートとしてはかなり重宝できるドキュメントになったので、印刷していつでも参照できるように手元に置いておこうかと。今後、このドキュメントを使って、WordPressのユーザ認証をカスタムできるプラグインとか作ってみようかなぁ……とか思っている(まぁ、他にもやりたいことが山積みなので、あまり期待はできないが……w)。

 なお、もしこのドキュメントのPDF版の原本が欲しいという方は、コンタクトフォームからお問合せ下さいませ。