WordPressで会員用サイトを作る時ってありますよね。PHPコードを書けばいいのかもしれないけれどノンプログラマな私にはハードルが高すぎるので、使ったプラグインの備忘録。
【希望】
・会員用サイトはトップしか見えないで、中のページはログインしないと見えないようにしたい。
・購読者ユーザーはダッシュボードには入らせたくない。プロフィール等も変更させたくない。
・コメントをつけたりすることは可能にしても基本は見るだけにしておきたい。
【使ったプラグイン】
■Absolute Privacy (会員以外には見せない設定およびダッシュボードに管理者以外は入れない設定)
「設定」からComplate Lockdownを選び、その下の公開したいページにトップページのIDを入れる IDを入れないとどこも見えない
その下のGeneral Settingにもチェック
上の段:デフォルトではログインしていないユーザーがリダイレクトされるページIDを入力(ここではトップページのIDを入力)
下の段:管理者以外はプロフィールページやダッシュボードにアクセスしようとするとトップページに飛ばされる設定
■Peter’s Login Redirect(購読者ユーザーのログインURL)
権限ごとにリダイレクトさせるページを選べる。購読者権限は、ログインURL、ログアウトURLともにトップページ
■Sidebar Login
サイドバーからログインできるプラグイン。一般ユーザーはログイン画面のURLを別にするとややこしいのでサイドバーから。
■User Role Editor
権限ごとに細かく設定。購読者は読むだけなので「read」にチェック
あとは購読者ユーザーのプロフィールで「サイトを見るときにツールバーを表示する」のチェックを外せば上の管理バーも見えません。
こまかな設定が必要かと思っていたのですが4つのプラグインでうまく調整できました。
2014.11.1 追記
その他使ったプラグイン他
■User Access Manager
グループごとにアクセスできるページを分けられる。例えばAのユーザーには会員ページ1の記事は見せて Bのユーザーには見せないということができます。
今回メンバーページの中でもグループ分けをして見せないページを作りたかったので導入。
■その他 functions.php を変更
購読者レベルのユーザーが直接ダッシュボードのアドレスを打ち込むと見えてしまうのでユーザーレベルが一番低いユーザーには見せない設定。
post権限があるかないかで分岐
[php]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();
}
}
[/php]