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

沖縄/大阪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

  関連記事

カスタムフィールドの値をURL指定して記事をソートする

WordPressは記事ソートや抽出が中々優秀でして、URLから指定してあげるこ …

Advanced Custom Fieldsで作ったカスタムフィールドの画像をアイキャッチ画像にする

カスタムフィールドで投稿した画像を自動でアイキャッチ画像にしたかったのですが、A …

WordPressでよく使う新着記事表示のコード

ほんとによく使うので覚え書き。 ちなみにマルチサイトをまたがって新着を取得する場 …

Lightbox系プラグイン「Easy FancyBox」

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

Limit Login Attempts Reloadedとしてヤツが帰ってきた件

かんたん優秀なセキュリティ、「Limit Login Attempts」 Lim …

ショートコードの出力結果が固定ページや投稿の上部に表示される

またもやWordPress覚書。もはやメモ帳代わり。 固定ページなどの途中でPH …

カスタム投稿を使うときのメモメモφ(..)

カスタム投稿タイプとは 通常の「投稿」「固定ページ」等とは違うタイプの投稿方法。 …

カスタムフィールドの出力(テンプレート作成)について

表題の通り覚え書き。 テンプレートを作る。page.phpなどを元にしてテンプレ …

ワードプレスのサイト引越し時に500エラー

毎度おなじみのワードプレス備忘録です。 表題の通り、よくある(よくあってほしくな …

WordPressで記事を取得、ループしたいときに-その2

WordPressで記事を取得したいんだけど・・・ WordPressで記事を取 …