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の管理画面が重くなったら(WPML使用サイト向け)
はっきりとした原因は不明なのですが、WPMLを入れていたWordpressサイト …
-
-
WordPressのサーバー移動
WordPressのサーバーお引越し これからWordPressのサーバー移動を …
-
-
海外テーマで文字化け回避したいの巻
テーマで文字化け! 海外製のWordpressテーマを使ったときに起こりやすいん …
-
-
テーマの自動アップデートがイヤな場合は
最近梅の花がとってもきれいに咲いてますね。 春の訪れを感じながら仕事に追われる「 …
-
-
WordPressでよく使う新着記事表示のコード
ほんとによく使うので覚え書き。 ちなみにマルチサイトをまたがって新着を取得する場 …
-
-
カスタムフィールドの出力(テンプレート作成)について
表題の通り覚え書き。 テンプレートを作る。page.phpなどを元にしてテンプレ …
-
-
アーカイブページでタームごとに記事一覧を出力する
カスタム投稿の記事一覧を出したい ターム名1(カスタム投稿の「カテゴリ名」のよう …
-
-
mb_substr()使ってもサムネイルの見出しがズレるじゃん!という話
またしても忘備録。 WordPressでよくある、こういう感じの記事表示方法。 …
-
-
.htaccessに最低限設定しておいたほうが良いこと
簡単で結構効果のあるセキュリティとして.htaccessの設定がありますが、最低 …
-
-
新着情報などでAll-in-One Event Calendarのカテゴリ名を表示する方法
ハマりました。 ドハマリしました。侮ってました。 「カテゴリ出力するだけでしょ。 …
