例えば、ワードプレスにログインしているユーザーの中で「購読者」という権限のユーザーのみが見れるページを作って表示させる方法です。例えば、ブログ内に「無料会員登録」という機能を作り、会員限定コンテンツとしてページを提供する、といった使い方が考えられます。
「非公開記事」を活用する
ワードプレスには、投稿記事を「非公開」にするという方法があります。
![](https://eguweb.jp/wp-content/uploads/202112121705-00-1024x469.jpg)
このステータスが非公開となっている記事は、一般のユーザーが開いた時には「ページがありません」「Not Found」のページとして表示されるようになっています。
![](https://eguweb.jp/wp-content/uploads/202112121855-00.jpg)
管理者は、非公開となっている記事を開くことができるようになっています。
![](https://eguweb.jp/wp-content/uploads/202112121856-00-1024x776.jpg)
「非公開記事」をワードプレスにログインした「購読者」も開けるようにすることで「会員限定ページ」を作ることも可能かと思われます。
非公開記事を活用する
ただし、この「非公開記事」ですが、権限が「管理者」「編集者」であれば「非公開記事」を閲覧可能ですが「投稿者」「寄稿者」「購読者」は閲覧することができないようになっています。
![](https://eguweb.jp/wp-content/uploads/202112121908-00.jpg)
ワードプレスにはログインしていますが、権限が「購読者」のため、非公開記事は表示されません。
購読者に権限を与える
標準のままでは購読者が非公開記事を閲覧できないので、閲覧できるように権限を変更します。
編集者または管理者であれば表示されます。購読者に非公開記事を見せたい場合は以下のコードをテーマのfunctions.phpに追加してみてください。
https://ja.wordpress.org/support/topic/%E3%80%8C%E9%9D%9E%E5%85%AC%E9%96%8B%E3%80%8D%E3%81%AE%E6%A8%A9%E9%99%90%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/
上記のページによると、get_roleで権限を取得して、add_capで非公開記事の表示(読み取り?)権限を与えるという流れのようです。
$subscriber = get_role( 'subscriber' );
$subscriber->add_cap( 'read_private_posts' );
WordPress の設計では、サイトの所有者が各ユーザーに対してサイト内で利用できる機能を管理する際に「権限グループ」の概念を使用します。サイトの所有者は権限グループに各ユーザーを含めることでタスクへのアクセス権を管理できます。タスクには 投稿の作成と編集, ページの作成, リンクの定義, カテゴリーの作成, コメントのモデレート, プラグインの管理, テーマの管理, and 他のユーザーの管理 などがあります。
https://wpdocs.osdn.jp/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E7%A8%AE%E9%A1%9E%E3%81%A8%E6%A8%A9%E9%99%90
テーマのfunctions.phpに追記
先程のコードを参考に関数を追記してみます。
function add_read_private(){
$subscriber = get_role( 'subscriber' );
$subscriber->add_cap( 'read_private_posts' );
}
add_action( 'admin_init', 'add_read_private' );
![](https://eguweb.jp/wp-content/uploads/202112122055-00.jpg)
権限が「購読者」でも「非公開記事」が表示されました!!
![](https://eguweb.jp/wp-content/uploads/202112122056-00-1024x669.jpg)
「寄稿者」の場合は「contributor」、「投稿者」の場合は「author」を指定すると、同様に非公開記事を見てもらうといった事が可能です。ただデータベースに書き込むようですので、解除する場合は設定を考えなければなりません。それはまた…別の機会に試してみたいと思います。
まとめ
この方法で、ワードプレスにログインしている購読者のユーザーのみがこのページを見れるようになります。簡易的な方法ですが、会員制サイトを構築したい場合などに使える方法のひとつになるかと思いますので、ご参考ください😃