マジカルスリー・だいすけのなりゆき長者ブログ

沖縄/大阪WEB広告・ホームページ制作・印刷物制作 マジカルスリー 「福」代表のブログ

*

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様)

WordPressのログイン画面をカスタマイズしてデザインを変更してみよう・・・ (creive様)

この辺が役に立つと思われます。

ログイン後、購読者ユーザーはリダイレクト

閲覧するだけの人が管理画面に入ってパニクらないようにサイトトップへリダイレクトしてあげます。

サイト閲覧モードでの画面上部の管理者バーも消してあげます。

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の事

Message

  関連記事

WP_Queryの使い方

WP_Queryの使い方はちょくちょく忘れますので忘備録。 WP_Queryの使 …

月別アーカイブページでカテゴリ指定

月別アーカイブページでカテゴリ指定したい・・・ でも、query_postsやW …

category.php内で現在のカテゴリを取得する

カテゴリの取得でハマったので忘備録しておきます。 いつもはget_the_cat …

Lightbox系プラグイン「Easy FancyBox」

特に意識すること無くLightbox(ふわっと写真を別ウィンドウで表示する)を使 …

WordPressでプラグイン無しサイトマップ

【WordPress】プラグイン無しでサイトマップを追加する方法。 コードのみで …

Instant WordPress入れてみる

Instant WordPressという、ネット上のサーバーではなくローカルPC …

プラグイン無しで外部サイトのRSSを表示するRSSリーダー的なもの

外部RSS(ブログの新着記事)を読み込む案件があったので「プラグインでええよなー …

サムネイルをいちいち入れるのめんどくさい人に Default Thumbnail Plus

めんどくさがりやーな「だいすけ」です。 こんにちは。 WordPressのサムネ …

All-in-One Event Calendarでエラー「イベントの取得中に何かがうまくいきませんでした。」

使い慣れないプラグインは変なことが起こるのでびっくりデスよ。 表題のエラーが起こ …

マルチサイト化でよくあること・・・参加サイトに表示されない!

WordPressでマルチサイト化すると、左上の「参加サイト」にマウスオーバーし …