WordPressで固定ページや投稿ページ等、特定のページだけアクセス制限をかけたいってことありますよね。これまで「User Access Manager」というプラグインが有名でしたが最近アップデートされてないようでしたので、他に同じようなプラグインがないか探したところこちらの【Restrict User Access】を見つけましたので使い方をご紹介します。
「Restrict User Access」の特徴
「Restrict User Access」はユーザーやグループごとに特定のページへのアクセス制限を設定できるプラグインです。ページアクセスだけでなくWordPress管理画面の操作権限も細かく設定できるようになっています。
会員制サイトの「会員登録ページ」のようなものは必要ないけど、登録ユーザーごとに細かくアクセス権限を分けたいという用途には向いているプラグインです。
設定項目も少なくシンプルなので、簡単に導入できますので基本的な使い方をご説明します。
「Restrict User Access」のインストール
「プラグイン」の「新規追加」から「Restrict User Access」でサーチすると出てきます。アイコンがスターウォーズのボバフェットに似てますがどういう意味があるのかは不明です。
プラグインを有効化して一覧を見ると、プラグイン名が「ユーザーアクセスを制限」となぜか日本語表記に変わります。「Restrict User Access」が見つからない!と焦らないで下さいね。
「Restrict User Access」の設定方法
設定の仕方を見ていきましょう。ダッシュボードのサイドメニューに「ユーザアクセス」という項目が追加されてますのでクリック。
今回は、投稿ページのみアクセス制限をかけるというケースを想定してご説明します。つまり「サイト自体は誰でも閲覧可能だけれども、投稿記事の内容は登録したユーザーしか閲覧出来ない」といった設定になります。
「新規追加」タイトル入力
まず、新規追加メニューを開きます。このような画面になりますので、「新規アクセスレベルを追加」の欄にタイトルとして「Subscriber Level」と入れます。
これは「Subscriber」つまりユーザー権限が「購読者」の場合のみアクセス出来るレベル、という意味です。このアクセスレベルのタイトルは何でも良いのですが「グループ名 + Level」としておくと分かり易いかと思います。
「Access Conditions」タブ
「Access Conditions」タブの中に「+ New condition group」というプルダウンがあるので開きます。今回は投稿記事にアクセス制限をかけたいので「投稿 / Blog」を選択します。
はい、このように「投稿 / Blog」が追加されました。
これですべての投稿ページがアクセス制限の対象となります。
すべての投稿ページではなく、特定の記事だけアクセス制限をかける事も出来ます。横にある「投稿一覧 / ブログページ」の欄に記事タイトルを打ち込むと検索結果としてプルダウンに表示されるので対象のタイトルを選択します。
このようにして投稿ページにアクセス制限をかけるのですが、サイドバーなどに「最近の記事」「カテゴリー」「アーカイブ」などとして記事タイトルとアイキャッチは表示されます。なので、コンテンツがあることは分かるけれども中身のコンテンツは権限がないと見れないという状態になります。
「メンバー」タブ
「メンバー」タブの設定です。ここではアクセス制限の対象を設定します。「Synchronized Role」のプルダウンからアクセス制限の対象となる権限名を選びますが、今回は「購読者」が対象なので「Subscriber」を選びます。
あるいはこのように「Search for Users…」にユーザー名を打ち込んで、アクセス制限の対象ユーザーを指定することも出来ます。
「機能」タブ
続いて「機能」タブの説明です。
ここではユーザーによるWordPress管理画面の操作範囲について50項目に分けて細かく設定することが出来ます。許可する場合は「Permit」、許可しない場合は「Deny」にチェックを入れます。
この50個の設定項目の中に「read」というのがあります。こちらを「Deny」にするとユーザーがログインした時、WordPress管理画面に入れないようにすることが出来ます(トップページにリダイレクトされます)。
「オプション」タブ
最後に「オプション」タブの説明です。「Default Access」は2つの選択肢があり、
・「All unrestricted content」:制限のないすべてのコンテンツにアクセス可
・「Restricted content only」:制限されたコンテンツのみアクセス可
となってますが通常は「All unrestricted content」を選ぶことになると思います。
「拡張レベル」:
こちらは例えば「Subscriber Level」のほかに「Gold Level」というランクが上のグループを作ったとして、ランクが下の「Subscriber Level」の設定も引継ぎたい時はプルダウンから選択します。
「Non-Member Action」:
「リダイレクト」と「テーズ & インクルード」から選択出来ます。
リダイレクト:
アクセス権限の無いユーザーを別のページにリダイレクトすることが出来ます。プルダウンから作成済みの固定ページリストが表示されますので、リダイレクト先として設定します。リダイレクト先は例えば「登録メンバー限定のページとなります」とか「アクセス権限がありません」などのページになると思います。
テーズ & インクルード:
こちらは、リダイレクトさせずに同じページ内の <!–more–> タグがあるところまではページを表示させます。そして、その下にログインフォームなどを表示させるといった使い方が出来ます。
※ moreタグとはWordPressエディター画面でブロック追加から「レイアウト要素」→「続きを読む」で入力できるタグのことです。
なので固定ページでログインページを別途作っておいて、それをこちらのプルダウンから指定してあげると「これ以上読みたい方は権限のあるIDでログインして下さい」といった趣旨のページを表示することが出来ます。
「Duration」:
レベル内ユーザーのアクセス権限を一定期間に限定する必要がある場合はここから設定しましょう
最後に「Hide Admin Toolbar」はユーザーがログイン中でもフロントページで管理バーを非表示に出来ます。
「レベル名」はレベルのタイトルから自動で生成されますので特に自分で入力する必要はありません。
ちなみに、
以下のようにショートコードで囲むことでページ全体だけでなく記事の一部に閲覧制限をかけることも出来ます。“subscriber-level” の部分は上記の「レベル名」と同じにしないと上手く機能しませんのでご注意下さい。
[restrict level="subscriber-level"]
ここに書かれたコンテンツは「subscriber-level」のみ閲覧できる。
[/restrict]
あるいは、このようにユーザー権限で指定することも出来ます。
[restrict role="subscriber"]
ここに書かれたコンテンツは「subscriber(購読者)」のみ閲覧できる。
[/restrict]
「Restrict User Access」良いところ・残念なところ
「Restrict User Access」について一通りご説明しましたが、設定項目も少なく簡単シンプルに使えるところがメリットかと思います。
会員制サイトのような登録ページやログインページなどを作る機能はありませんが、コミュニティや社内のポータルサイトだったりで、メンバーやグループ、あるいはユーザー・非ユーザーでアクセス先を分けたいという場合であれば十分な機能ではないでしょうか。
少し残念な点としては「投稿ページ」にアクセス制限をかけてもサイドバーやウィジェットなどに「最近の投稿」「カテゴリー」などとしてタイトルとアイキャッチなどは表示されてしまうことです。
「コンテンツがあることは分かっても構わない。記事の内容が見られないように出来ればいい」という場合は問題ないですね。ただコンテンツがあることすら分からないようにしたいという場合は、別のアプローチが必要なようです。
そしてこちらのプラグインですが、追加機能がいくつかアドオンとして提供されています。
有料にはなりますが「個別URL」や「投稿日時」などでアクセス制限を更に細かく条件設定できるようです。トライアル期間もあるようなので必要であれば試してみるのも良いかもしれません。
コメント