本来、WordPressの非公開設定中の投稿・固定ページは管理者・編集者のみが閲覧可能で、購読者には権限が与えられていません。
そのため、購読者に非公開ページを閲覧させたい・・・という場合に有効な方法になります。
ざっくりやることとしては、プラグインを自作してそれのオンオフで権限の付与・解除を行います。
今回はこういう感じでプラグインを作っています。
- Readable-Subscriberという名前でフォルダを作る
- Readable-Subscriber.phpというファイルを作る
- 2.で作ったファイルにあとで記すコードを記載
- wp-content/plugins/の中に1.のフォルダをアップロード
- ダッシュボードでプラグイン有効化
<コード>
※固定ページを閲覧させたい場合・・・read_private_pages
※投稿を閲覧させたい場合・・・read_private_posts
<?php
/*
Plugin Name: Readable Subscriber
Version: 0.0.1
*/
/**
* ReadableSubscriber : プラグイン有効時、非公開記事 ( private posts ) を購読者 ( subscriber ) でも閲覧可能にする。無効時、その権限を削除する
*/
class ReadableSubscriber
{
protected $role = 'subscriber';
protected $privilege = 'read_private_posts';
/**
* __construct : コンストラクタ。プラグイン有効時・無効時をトリガーにして対応するメソッドを呼ぶ
*
*/
public function __construct() {
// 有効化の際に発動
register_activation_hook(
__FILE__,
[
$this,
'addReadPrivilege',
]
);
// 無効化の際に発動
register_deactivation_hook(
__FILE__,
[
$this,
'removeReadPrivilege',
]
);
}
/**
* addReadPrivilege : 購読者にも非公開記事を閲覧する権限を付与
*
*/
public function addReadPrivilege ()
{
$subscriber = get_role( $this->role );
$subscriber->add_cap( $this->privilege );
}
/**
* removeReadPrivilege : 購読者から非公開記事を閲覧する権限を剥奪
*
*/
public function removeReadPrivilege ()
{
$subscriber = get_role( $this->role );
$subscriber->remove_cap( $this->privilege );
}
}
// instantiate
$ReadableSubscriber = new ReadableSubscriber();
