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別の使い方をする時のために・・・。
(๑´ڡ`๑)
以上、これで簡易的な会員サイトの働きができると思います。
関連記事
-
カスタムフィールドの値をURL指定して記事をソートする
WordPressは記事ソートや抽出が中々優秀でして、URLから指定してあげるこ …
-
新着情報などでAll-in-One Event Calendarのカテゴリ名を表示する方法
ハマりました。 ドハマリしました。侮ってました。 「カテゴリ出力するだけでしょ。 …
-
WP_Queryの使い方
WP_Queryの使い方はちょくちょく忘れますので忘備録。 WP_Queryの使 …
-
外部画像URLもアイキャッチに「Featured Image From URL」
外部画像URLをアイキャッチに出来るプラグインを発見したのでご紹介。 Featu …
-
タクソノミー(ターム)の記事一覧を出したい!
あれ?archive.phpで表示してる・・・? WordPressでカスタムタ …
-
カスタムフィールドの出力(テンプレート作成)について
表題の通り覚え書き。 テンプレートを作る。page.phpなどを元にしてテンプレ …
-
マルチサイトで複数のブログの新着情報を取得したい
WordPressでマルチサイトの新着情報を取りたいなーと思うことがあったのでメ …
-
Sydneyで正方形のアイキャッチ画像を使いたかった話
通常、WordPressでアイキャッチ画像を設定すると、そのサイズでアイキャッチ …
-
マルチサイト引越し時の注意
マルチサイト引越の手順でひっかかったので忘備録。 引越し先のWordPressイ …
-
WordPressで記事のカルーセルスライダー(jQuery的なスライドショー)
WordPressがそれなりにいじれると分かってから、嫁様の私への”こき使いっぷ …