会員制ページのあるサイトをつくるよ

1つのID/PASSを会員が共用し、会員ページバナーをクリックすると会員用ページが見られる仕様。


【手順1】購読者権限で新規ユーザをつくる。これが会員に配布するID/PASSになります。


【手順2】
会員ページにアクセスした際、ログインしていない場合、Wordpressのログイン画面にとばすようにします。
今回はページ内の数ページを会員ページとしたので、会員ページに該当するページには「single-kaiin.php」を読ませています。

▼やりかた
「single-kaiin.php」の一番上に下記を記述。

<?php if (is_user_logged_in()){
}else {auth_redirect();
}; ?>

▼注意!
<html>やテンプレート名の前に入れないとうまくいかない。真っ白ページになっちゃう。



【手順3】
ログインしたら管理画面ではなくトップページなどにとばします。

▼やりかた
ログインしたときに指定URLにリダイレクトしてくれる「Peter’s Login Redirect」プラグインを使用して、設定より飛ばすページを指定します。


【手順4】
購読者でログインしたユーザに管理画面をのぞかれないようにします。

▼やりかた
function.phpに、下記2つを書き加える。

/* 購読者のログイン後にはツールバー(アドミンバー)を消す */
add_action( 'after_setup_theme', 'subscriber_hide_admin_bar' );
function subscriber_hide_admin_bar() {
$user = wp_get_current_user();
if ( isset( $user->data ) && !$user->has_cap( 'edit_posts' ) ) {
show_admin_bar( false );
}
}

/* 管理者しかダッシュボードにアクセスできないよ */

add_action( 'auth_redirect', 'subscriber_go_to_home' );
function subscriber_go_to_home( $user_id ) {
$user = get_userdata( $user_id );
if ( !$user->has_cap( 'edit_posts' ) ) {
wp_redirect( get_home_url() );
exit();
}
}


【手順5】
管理画面をカスタマイズする。

<?php
function login_logo() {
echo '<style type="text/css">
#login h1 a {
background: url('.get_bloginfo('template_directory').'/images/logo.png) no-repeat;
width: (ロゴのサイズ)px;
height: (ロゴのサイズ)px;
}
</style>';
}
add_action('login_head', 'login_logo');
?>



【手順6】
公開ページにも非公開ページにもそれぞれ新着情報を表示させたいので、投稿のカテゴリによって公開/非公開をわけられるようにします。

プラグインAllow Categoriesで、カテゴリ毎に設定ができるので設定する。
一般公開の場合(Public)、ログインした場合(Logged In)。
ログイン機能を使用するカテゴリーにはチェックしない。