WordPressで特定のユーザーのみ閲覧できるページを作成する方法【完全ガイド】

WordPress

特定のユーザーにのみコンテンツを表示する方法は、会員制サイトや社内向けページなど、さまざまな用途で役立ちます。
本記事では、プラグインを使った簡単な方法から、カスタムコードを活用する高度な手法まで詳しく解説します。
さらに、SEOを考慮した設定についても紹介するので、検索エンジン対策も万全です!

特定ユーザー限定のページの用途
  • 会員限定コンテンツの提供(有料コンテンツや特典ページ)
  • 社内情報の管理(社内向けポータルサイトやマニュアル)
  • クライアント専用ページの作成(個別にプロジェクト情報を提供)
  • SEOを意識した非公開コンテンツの運用(検索エンジンに不要なページを公開しない)

本記事では、これらを実現する方法を詳しく解説していきます。

WordPressで特定のユーザーのみ表示する方法【基本編】

WordPressには、特定のユーザーにのみコンテンツを表示するための基本的な方法がいくつかあります。

パスワード保護を使う(簡単な方法)

WordPressの標準機能として、投稿や固定ページをパスワードで保護することができます。

設定手順
  1. 記事の編集画面で「公開状態」を「パスワード保護」に設定
  2. ユーザーにパスワードを共有し、閲覧可能にする

ユーザーのログイン状態で制限する

ログイン済みのユーザーにのみページを表示するには、is_user_logged_in() を使うと簡単です。

<?php if ( is_user_logged_in() ) {
    echo 'このページはログインユーザー専用です。'; // ログインしている時
} else {
    echo 'このページを閲覧するにはログインが必要です。'; // ログインしていない時
} ?>

特定のユーザーグループのみ閲覧可能にする

ユーザーの権限(管理者・編集者・購読者など)に応じて、表示を制限できます。

<?php if ( current_user_can('editor') ) {
    echo 'このページは編集者以上のみ閲覧可能です。'; // 編集者以上の権限でログインしている時
} else {
    echo 'アクセス権がありません。'; // 編集者以上の権限でログインしていない時
} ?>

権限ごとの記述例

権限記述方法説明
管理者if ( current_user_can('administrator') )サイト全体の管理が可能
編集者if ( current_user_can('editor') )投稿・固定ページの管理が可能
投稿者if ( current_user_can('author') )自分の投稿の管理が可能
寄稿者if ( current_user_can('contributor') )投稿の下書き作成が可能(公開は不可)
購読者if ( current_user_can('subscriber') )記事の閲覧のみ可能
特定のカスタム権限if ( current_user_can('custom_role') )custom_role にはカスタム権限名を指定

複数の権限を指定する場合

<?php if ( current_user_can('administrator') || current_user_can('editor') ) {
    echo '管理者または編集者のみ閲覧可能';
} ?>

プラグインを使って特定ユーザー専用ページを作成する

プラグインを使うと、手軽に特定ユーザー向けのページを作成できます。

Restrict Contentプラグインの使い方

Restrict Contentプラグインの使い方

Restrict Contentは、特定のユーザーロールやログインユーザーのみにコンテンツを制限できます。
設定のおおまかな流れは以下の通りです。

設定手順
  1. プラグインをインストール・有効化
  2. 投稿・固定ページで「制限設定」を追加
  3. 「登録ユーザーのみ」や「特定の権限のユーザーのみ」に設定

Membersプラグインでユーザー権限を細かく設定

Membersを使うと、特定の権限を持つユーザーにのみコンテンツを表示できます。
設定のおおまかな流れは以下の通りです。

Membersプラグインでユーザー権限を細かく設定
設定手順
  1. プラグインをインストール
  2. ユーザーロールをカスタマイズし、権限を追加・変更
  3. 制限したいページの表示条件を設定

コードを使って特定ユーザーのみ表示するページを作る方法

プラグインを使わずにコードで制御する方法もあります。

functions.phpにカスタムコードを追加

ユーザーのログイン状態をチェックし、非ログインユーザーをリダイレクトするコード。
「restricted-page」ページに非ログイン状態でアクセスするとログインページ「login」にリダイレクトします。

function restrict_page_access() {
    if ( is_page('restricted-page') && !is_user_logged_in() ) {
        wp_redirect( home_url('/login/') );
        exit;
    }
}
add_action('template_redirect', 'restrict_page_access');

テンプレートファイルをカスタマイズ

特定のページテンプレートで、表示を制限する方法。
購読者以上のユーザーでログインしていないと、トップページにリダイレクトされる。

<?php if ( is_user_logged_in() && current_user_can('subscriber') ) {
    echo 'このページは購読者専用です。'; //ここにページの内容を記述
} else {
    wp_redirect( home_url() );
    exit;
} ?>

SEOに配慮した特定ユーザー限定ページの設定

検索エンジンにインデックスさせない方法

非公開のページは、noindexメタタグを追加して、検索エンジンに表示されないようにしましょう。
function.phpに以下を追加します。

function add_noindex_meta() {
    if ( is_page('restricted-page') ) {
        echo '<meta name="robots" content="noindex, nofollow">';
    }
}
add_action('wp_head', 'add_noindex_meta');

robots.txtで制御する

Googleにページをクロールさせたくない場合は、robots.txtに追加します。
メモ帳などで「robots.txt」という名前でテキストファイルを作成し、サーバー直下に置きます。
以下の記述だと、「restricted-page」というURLのページをインデックスさせない設定です。

User-agent: *
Disallow: /restricted-page/
SEOとユーザー制限のバランスを取るコツ
  • 非公開ページのリンクを意図的に外部に流さない
  • サイトマップ(sitemap.xml)から除外する
  • 必要に応じて、特定のページだけ「ログイン後に見られるプレビュー」を用意

最適な方法で特定ユーザー限定ページを作成しよう!

  • プラグインを使う場合 → 簡単に設定できるが、導入するプラグインの選定が重要
  • コードを使う場合 → より柔軟な制御が可能だが、開発知識が必要
  • SEO対策 → 限定ページは検索エンジンに表示させない設定を忘れずに

自分のサイトに合った方法を選び、特定ユーザー向けのコンテンツを適切に運用しましょう!

この記事を書いた人
管理人

2012年にWebデザインの勉強を始め、2013年より制作会社に勤務。
これまでに500件以上のWebサイト制作・運用に携わってきました。
現在も制作会社に勤務しながら、Webデザインスクールのトレーナーとしても後進の育成に取り組んでいます。
WordPressやデザインの実践的なノウハウを、初心者にもわかりやすく発信できるよう試行錯誤しています。

管理人をフォローする
WordPress
管理人をフォローする

コメント

タイトルとURLをコピーしました