web-dev-qa-db-ja.com

投稿者にページの作成を許可する(ただし、公開はしない)

投稿者 は投稿ドラフト を作成できますが、公開はできません。 Pagesにも同じパーミッションの概念を追加したいのですが。つまり、編集者/管理者に後で承認または却下させるためだけに投稿者にページドラフトを作成させることはできますか。

この 質問 から、アクションnew_role_edit_postsにフックできることがわかります。同等のnew_role_edit_pagesはありますか?

これについてどう思いますか。

1
Rick

これについてどう思いますか。

私はこれが古い質問であり、あなたが既存のプラグインで解決策を見つけたということを見ます。しかし、これは開発用のStackExchangeなので、サードパーティ製のプラグインを必要とせずに上記の目標を達成する方法を説明した答えがあるのであれば、おそらくそれが良いでしょう。

書かれた答え

WordPressは機能をデータベースに保存します。したがって、プラグインのアクティブ化時にedit_pages機能をコントリビュータロールに追加するプラグインが必要です。完全を期すために、プラグインは非アクティブ化時に機能を削除するべきです。

コード化された答え

/**
 * Plugin Name: WPSE 230940
 */

//* Add activation hook
register_activation_hook( __FILE__ ,  'wpse_230940_activation' );    
function wpse_230940_activation() {
  //* Add edit_pages capability to contributors
  $contributor = get_role( 'contributor' );
  $contributor->add_cap( 'edit_pages' );
}

//* Add deactivation hook
register_deactivation_hook( __FILE__ , 'wpse_230940_deactivation' );
function wpse_230940_deactivation() {
  //* Remove edit_pages capability from contributors
  $contributor = get_role( 'contributor' );
  $contributor->remove_cap( 'edit_pages' );
}
1
Nathan Johnson