[WordPress小ネタ]ページスラッグとユーザIDが同じ場合のみcontentを見せる方法
WordPressのフォーラムを潜ってたら下記のスレッドを見かけて、ちょっと試してみました。
ユーザー名「hogehogesan」が居たとして、
WordPressの固定ページでスラッグ名「hogehogesan」を作成。
http://example.com/hogehogesan/
page.php の get_header(); の前に、auth_redirect(); を入れて、強制的に認証させておき、
the_content() の所を下記のようにしておけば、上記固定ページはユーザー名「hogehogesan」のみ閲覧でき、他の人は「hogehogesanさん専用ページです」と表示されるというもの。
global $current_user; // ログインしているあなた get_currentuserinfo(); // あなたの情報を取得 $uname = $current_user->user_login; // ユーザー名を取得 $slug = get_page($page_id)->post_name; // このページのスラッグを取得 if($uname==$slug){ // ユーザー名とスラッグが一緒ならcontentを表示する the_content(); } else { // 違ったらエラー表示 echo $slug."さん専用ページです。"; }
パスワードは管理者が固定ページに設定するのではなく、ユーザーごとに管理してもらった方が、漏れた時に管理者の責任が多少は少なくなるという考えなので、こんな塩梅が良いのではと思った次第です。