WordPressで投稿や固定ページの内容を「部分的に」特定の権限を持つユーザーに表示するプラグイン

WordPressで作られた会員制サイトで、ユーザー登録すると「詳細な情報が見られる」といった「会員限定コンテンツ」を作りたいとします。

「会員限定コンテンツ」の作り方もいろいろあると思いますが、投稿や固定ページの「本文中の特定の部分だけ会員限定コンテンツとしたい」ってことはあります。

その場合は、一部分を「特定の権限を持つユーザーのみ表示する」ことができるプラグインを使えば可能です。

似たようなことで情報をお探しの方は、以下ご参考ください。

プラグインのインストール&有効化

WordPressの管理画面より「プラグイン」→「新規追加」で、プラグイン検索フォームに「Private content」と入力してプラグインを検索して、有効化・インストールを行えば準備OKです。

直接ソースコードをFTPソフトなどでアップロードする場合は、WordPress.orgのプラグインディレクトリで配布されていますので、ダウンロードしましょう。

「Private content」プラグインの使い方

プラグインの基本的な使い方としては、以下のようにショートコードで囲めばOKです。

[private role="administrator"]「管理者」権限を持つユーザーに表示[/private]

ショートコードで囲まれた内容は「管理者」権限を持つユーザーのみ表示します。

ユーザーが持つ権限別に表示できる

ショートコードに指定する「role」の値によって、ユーザーが持つ権限別で表示が可能です。

administrator管理者
editor編集者
author投稿者
contributor寄稿者
subscriber購読者

「編集者」権限を持つユーザーに表示させたい場合は、以下のように書きます。

[private role="editor"]「編集者」権限を持つユーザーに表示[/private]

どの権限に対して表示するかを決めて、roleの値を設定すればOKですね。

もう少し細かく「特定の権限を持つユーザーのみ表示したい」場合はこうする

ここで、例えば以下のように「購読者」権限を持つユーザーに表示したい内容があったとします。

[private role="subscriber"]購読者以外のユーザーにも表示[/private]

上記の場合は「管理者」「編集者」「投稿者」「寄稿者」の権限を持つユーザーも閲覧できてしまいます。

各権限が持つ「できること」の多い・少ないにかかわらず「特定の権限を持つユーザーのみ表示したい」ということはよくあります。

運用ポリシー上「購読者」には表示するけど「編集者」には表示しない、みたいな場合ですね(最近そういう案件がありました)。

というわけで「特定の権限のユーザーのみ表示させたい」場合は、以下のように書けばOKです。

[private role="subscriber-only"]購読者のみ表示[/private]

roleの値を「subscriber-only」とすることで「購読者」権限を持つユーザーのみ表示することができます。

その他、指定できる値は色々あります。さらに詳しい使い方は、WordPress.orgのプラグインディレクトリをご参考ください。

プラグインを使った感想

「どのユーザーに対して、どの程度コンテンツを提供するのか」ってのはサイトの運営上・戦略上考える方もいらっしゃると思いますが「特定のコンテンツは特定のユーザーの方のみ提供したい」というアプローチをしたいサイトなどで活用できるプラグインですね。

また「PHPコードを書くことなくショートコードで実装できる」っていうのは、プログラミング経験があまりない方にとっても感覚的に使用できる設計になっています。WordPressプラグイン開発を仕事としてやっている私にとっては、参考になる実装方法だなぁと思いました。

応用してみよう

もしプログラミング経験(WordPressの構築経験)がある方は、ショートコードでの実装を応用すれば、本文以外の箇所(例えばテンプレートファイル内)にも使用することができます。発想次第ではさらに柔軟な使い方ができる、という感じですね。

著者:bouya Imamura