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別の使い方をする時のために・・・。
(๑´ڡ`๑)
以上、これで簡易的な会員サイトの働きができると思います。
関連記事
-
-
マルチサイトで複数のブログの新着情報を取得したい
WordPressでマルチサイトの新着情報を取りたいなーと思うことがあったのでメ …
-
-
カスタム投稿を使うときのメモメモφ(..)
カスタム投稿タイプとは 通常の「投稿」「固定ページ」等とは違うタイプの投稿方法。 …
-
-
月別アーカイブページでカテゴリ指定
月別アーカイブページでカテゴリ指定したい・・・ でも、query_postsやW …
-
-
.htaccessに最低限設定しておいたほうが良いこと
簡単で結構効果のあるセキュリティとして.htaccessの設定がありますが、最低 …
-
-
テーマの自動アップデートがイヤな場合は
最近梅の花がとってもきれいに咲いてますね。 春の訪れを感じながら仕事に追われる「 …
-
-
タクソノミー(ターム)の記事一覧を出したい!
あれ?archive.phpで表示してる・・・? WordPressでカスタムタ …
-
-
続・WordPress 不正アクセスとの飽くなき戦い
WordPressへの不正アクセスと引き続き戦う、だいすけです。こんにチワワ! …
-
-
Limit Login Attempts Reloadedとしてヤツが帰ってきた件
かんたん優秀なセキュリティ、「Limit Login Attempts」 Lim …
-
-
mb_substr()使ってもサムネイルの見出しがズレるじゃん!という話
またしても忘備録。 WordPressでよくある、こういう感じの記事表示方法。 …
-
-
WordPress HTTPSでリダイレクト
毎度おなじみ自分用の忘備録でございます。 まず前提条件として、「WordPres …