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別の使い方をする時のために・・・。
(๑´ڡ`๑)
以上、これで簡易的な会員サイトの働きができると思います。
関連記事
-
-
.htaccessに最低限設定しておいたほうが良いこと
簡単で結構効果のあるセキュリティとして.htaccessの設定がありますが、最低 …
-
-
外部画像URLもアイキャッチに「Featured Image From URL」
外部画像URLをアイキャッチに出来るプラグインを発見したのでご紹介。 Featu …
-
-
海外テーマで文字化け回避したいの巻
テーマで文字化け! 海外製のWordpressテーマを使ったときに起こりやすいん …
-
-
ショートコードの出力結果が固定ページや投稿の上部に表示される
またもやWordPress覚書。もはやメモ帳代わり。 固定ページなどの途中でPH …
-
-
【ご注意】WordPressの不正コード改ざん
WordPressを狙った不正コードによる下記動画のような改ざんが横行しているよ …
-
-
WordPressのサーバー移動
WordPressのサーバーお引越し これからWordPressのサーバー移動を …
-
-
WordPressのカテゴリー選択を1つに制限したがチェックできない場合
カテゴリの選択制限をかけている方はおそらく、jqueryを使って行っていると思わ …
-
-
続・WordPress 不正アクセスとの飽くなき戦い
WordPressへの不正アクセスと引き続き戦う、だいすけです。こんにチワワ! …
-
-
category.php内で現在のカテゴリを取得する
カテゴリの取得でハマったので忘備録しておきます。 いつもはget_the_cat …
-
-
WordPressの指定日時での部分表示
久しぶりにWordPressで少しハマったので忘備録です。 サイトの一部分だけ指 …
