PublishPress Futureの機能を管理者権限以外のユーザーで使う方法

※ 本サイトのコンテンツには、プロモーションが含まれている場合があります。
WordPress

PublishPress Future(旧名: Post Expirator)はWordPressの記事に公開期限を設定し、期限が過ぎたら自動で記事を非公開にできる便利なプラグインです。

ただし、初期設定では管理者権限以外のユーザー(編集者・投稿者など)がPublishPress Futureの機能を利用できないため、クライアント案件では不便に感じることがあります。

そこで今回は、管理者権限以外のユーザーでもPublishPress Futureの機能を使えるようにする方法をご紹介します。

当記事はWordPressのテーマファイルを直接編集する作業をご紹介しています。
操作を誤るとサイトが正常に動作しなくなる可能性もあるため、ある程度慣れている方向けの内容となっています。

PublishPress Futureの機能を管理者権限以外のユーザーで使う方法

例として編集者権限のユーザーでPublishPress Futureを使えるようにする方法をご紹介します。
有効にしているWordPressテーマのfunctions.phpに以下を記述してください。

PHP (.php)

function add_theme_caps()
{
  $role = get_role('editor');
  $role->add_cap('publishpress_future_expire_post');
}
add_action('admin_init', 'add_theme_caps');

3行目でeditor(編集者)を指定、4行目でeditor(編集者)にPublishPress Futureの使用を許可しています。

投稿者に権限を与えたい場合は3行目の'editor'部分を'author'に変更するだけでOKです。

権限を元に戻す方法

先程変更した権限を元に戻したい場合に、functions.phpから上記のコードを削除しただけでは元には戻らないのでご注意ください。

データベースを書き換えて権限を変更する処理を行っているため、改めて権限を戻す変更をデータベースに行う必要があります。

権限を元に戻す場合は先ほど記述したコードを削除(またはコメントアウト)したうえで、functions.phpに以下を記述してください。

PHP (.php)

function add_theme_caps()
{
  $role = get_role('editor');
  $role->remove_cap('publishpress_future_expire_post');
}
add_action('admin_init', 'add_theme_caps');

あとがき

これ意外と情報が少なくて苦労しました。

どの権限を付与すればPublishPress Futureの機能が使えるようになるのかピンと来なかったので、最初はプラグイン関連の権限を付与してみたもののハズレ。

PHP (.php)

  $role->add_cap('install_plugins');
  $role->add_cap('activate_plugins');
  $role->add_cap('update_plugins');
  $role->add_cap('delete_plugins');
  $role->add_cap('edit_plugins');
  $role->add_cap('resume_plugins');

Check!!

管理画面内の「プラグイン」メニューに関する権限なのでPublishPress Futureの使用可否とは関係なし!

最終的にUser Role EditorというWordPressの権限管理プラグインで関連性のあるパラメータを総当りしようと考えたところ「publishpress_future_expire_post」という文字列を無事発見!

ということでまたお会いしましょう。

Comments この記事に投稿されたコメント

タイトルとURLをコピーしました