WordPressで会員サイト的なものを作りたい
2016/09/09
WordPressで会員サイト的なものを作る
と言う題目で幾つか記事があったんですが、勘所がいろいろ分かれてしまっていたのでまとめてみました。
具体的な流れ
WordPressのユーザー機能を使います。
1,WordPressユーザーだけ閲覧できるサイトを作り
2、なおかつ購読者権限の場合は管理画面を見せずに、サイトTOPページヘリダイレクトするようにします。
まず会員サイトをつくる
個別サイトでもマルチサイトでもどちらでも良いと思います。
会員だけが閲覧できる予定のサイトを作っておきます。
会員以外はログインページにリダイレクト
会員以外はログイン画面にリダイレクトさせてしまいます。
ログイン画面はWordPressのものを使うので
http://example.com/wp-login.phpなどにリダイレクトすると良いでしょう。
<?php if (!is_user_logged_in()) { auth_redirect(); } ?>
以上のコードをheader.phpの上部に入れておくとサイト全体にリダイレクトするコードが入ります。
一部のページのみ閲覧不可にしたい場合はそのページのみこのコードが入るようにすると良いでしょう。
一般会員さんがWordPressのログイン画面だとドン引きするので
できるだけドン引きしないようログイン画面をカスタマイズします。
ログイン画面で任意のメッセージを表示する(かちびと.net様)
ログイン画面カスタマイズに便利なプラグイン「Custom Login Page Customizer」 (NxWorld様)
この辺が役に立つと思われます。
ログイン後、購読者ユーザーはリダイレクト
閲覧するだけの人が管理画面に入ってパニクらないようにサイトトップへリダイレクトしてあげます。
サイト閲覧モードでの画面上部の管理者バーも消してあげます。
function.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();
}
}
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 );
}
}
閲覧者(購読者ユーザー)もログアウトできるようにログアウトボタンをサイトに設置する
ログイン・ログアウトボタンを設置したい場所に以下のコードを入れます。
<?php if(is_user_logged_in()) : ?> <a href="<?php echo wp_logout_url(); ?>">ログアウト</a> <?php else : ?> <a href="<?php echo wp_login_url(); ?>">ログイン</a> <?php endif; ?>
基本、ログアウトするとリダイレクトされるはずなので、ログアウトボタンだけが表示されるはずですが、何かの拍子でおかしくなった時or別の使い方をする時のために・・・。
(๑´ڡ`๑)
以上、これで簡易的な会員サイトの働きができると思います。
関連記事
-
-
Redirectionプラグイン:REST APIの検索で止まる
久しぶりのWordPress忘備録。 Redirectionプラグインを初期設定 …
-
-
アーカイブページでタームごとに記事一覧を出力する
カスタム投稿の記事一覧を出したい ターム名1(カスタム投稿の「カテゴリ名」のよう …
-
-
WordPressのサーバー移動
WordPressのサーバーお引越し これからWordPressのサーバー移動を …
-
-
月別アーカイブページでカテゴリ指定
月別アーカイブページでカテゴリ指定したい・・・ でも、query_postsやW …
-
-
カスタムフィールドの出力(テンプレート作成)について
表題の通り覚え書き。 テンプレートを作る。page.phpなどを元にしてテンプレ …
-
-
WordPressサーバー移転の順序
自分用に備忘録。 FTPで元サイトをローカルにダウンロード PhpMysqlで元 …
-
-
Lightbox系プラグイン「Easy FancyBox」
特に意識すること無くLightbox(ふわっと写真を別ウィンドウで表示する)を使 …
-
-
Gist、いいね!
コード見せたいンゴ・・・ WordPressのことでよくコードをお見せする機会が …
-
-
プラグイン無しで外部サイトのRSSを表示するRSSリーダー的なもの
外部RSS(ブログの新着記事)を読み込む案件があったので「プラグインでええよなー …
-
-
子カテゴリに親カテゴリのテンプレートを引き継がせる
WordPressって基本的に親カテゴリを指定すると、それにぶら下がっている子カ …
