月別アーカイブ: 11月 2021

購読者(Subscriber)に非公開投稿・固定ページを閲覧させる方法

本来、WordPressの非公開設定中の投稿・固定ページは管理者・編集者のみが閲覧可能で、購読者には権限が与えられていません。
そのため、購読者に非公開ページを閲覧させたい・・・という場合に有効な方法になります。

ざっくりやることとしては、プラグインを自作してそれのオンオフで権限の付与・解除を行います。
今回はこういう感じでプラグインを作っています。

  1. Readable-Subscriberという名前でフォルダを作る
  2. Readable-Subscriber.phpというファイルを作る
  3. 2.で作ったファイルにあとで記すコードを記載
  4. wp-content/plugins/の中に1.のフォルダをアップロード
  5. ダッシュボードでプラグイン有効化

<コード>

※固定ページを閲覧させたい場合・・・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();