WordPressで制作したサイトを限定されたメンバーにだけ公開したい。
そんなケースも多々あるかと思います。
とにかく、全ての表示を会員限定にしたいのであれば、functions.phpに数行書き加えるだけでも、簡単な会員限定サイトを実現することが可能です。
下記のコードをテーマのfunctions.phpに追加すれば、ログインしておらず、なおかつログインページでない場合に、ログインページへのリダイレクトを行うようになります。
function require_login() { if ( ! is_user_logged_in() && strpos( basename( $_SERVER['REQUEST_URI'] ), 'wp-login.php' ) !== 0 ) { auth_redirect(); } } add_action( 'init', 'require_login' );
[2011.05.19追記]
上記のコードだとFlashアップローダーが使えなかったり、おそらくAjaxや、WordPressのCronも動作しない可能性があるため、一部修正を行いました。
function require_login() { if ( ! is_user_logged_in() && ! preg_match( '/^(wp-login\.php|async-upload\.php)/', basename( $_SERVER['REQUEST_URI'] ) ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) && ! ( defined( 'DOING_CRON' ) && DOING_CRON ) ) { auth_redirect(); } } add_action( 'init', 'require_login' );
これだけだと、メディアファイルに対応できんのよね。
URL直打ちで画像が見えちゃう。