無理やりパスワードを付ける


会員制サイト向けの有料テーマを利用したサイトで、ユーザー登録を招待した人限定にしたい。

テーマオプションには「ヘッダーに登録ボタンを表示する」「誰でも登録できる」というようなチェックがあって、両方にチェックが入っていると、アカウント用に設定した固定ページの下層ページとして登録フォームのページが表示できる。
*実際には登録フォームのページは存在していないので、パスワード保護にできない。

となると?
パスワードを入力するページを挟む?とか色々考えてみたが、招待された人はワンクリックで登録ページに辿り着くのが望ましいだろうし、パラメータでパスワードを付けることにした。

ACFでアカウント用のページにパスワードの入力欄を付け、登録ページ用のテーマで
$pid = $wpdb->get_var(“SELECT ID FROM $wpdb->posts WHERE post_name = ‘myaccount'”); $pwd = get_field(‘pwd’, $pid); if ( $_GET[‘pwd’] !== $pwd ) {
のように設定されたパスワードとパラメータに付けたパスワードを照合して、一致しない・パスワードが付いていない場合はリダイレクト、とした。