私はマルチ作家のブログを運営していて、私は非プラグインソリューションを探しています。
Wordpressのデフォルトの作成者ユーザーロールは承認なしで投稿を公開できます - ロール機能Wordpress Codex を見てください。投稿者の役割では画像をアップロードできないため、投稿者の役割を使用して私の目標を達成することはできません...
すべての著者投稿を "下書き"のようなステータスに設定することは可能ですか - 編集者だけが投稿を公開できるようになりますか?
Functions.phpに次のコードを追加してください。
function allow_contributor_uploads() {
$contributor = get_role('contributor');
$contributor->add_cap('upload_files');
}
if ( current_user_can('contributor') && !current_user_can('upload_files') ) {
add_action('admin_init', 'allow_contributor_uploads');
}
これにより、upload_files
機能がContributorの役割に追加されます。一度だけ実行する必要があります。コントリビュータロールを持つユーザとしてadminにログインするだけです。機能が正常に追加されたら、必要に応じてコードを削除(またはコメントアウト)できます。
upload_files
機能を削除してContributorの役割をデフォルトに戻すには、次のようにします。
function deny_contributor_uploads() {
$contributor = get_role('contributor');
$contributor->remove_cap('upload_files');
}
if ( current_user_can('contributor') && current_user_can('upload_files') ) {
add_action('admin_init', 'deny_contributor_uploads');
}
プラグインオプション
Kaiserによる提案から、寄稿者機能(編集、削除、投稿の閲覧)を持つ新しいユーザーロールを作成するプラグインです。ファイルアップロード機能をプラスしてください。
<?php
/**
* Plugin Name: Add Contributor Plus Role
* Description: Activate plugin to create a user role with Contributor capabilities, PLUS upload_files.
* Plugin URI: http://wordpress.stackexchange.com/questions/165951/publish-author-posts-only-with-editor-approval/165957#165957
* Version: 1.0
*/
add_action( 'wp_loaded', 'add_new_contributor_plus_role');
function add_new_contributor_plus_role() {
add_role(
'contributor_plus',
__( 'Contributor Plus' ),
array(
'edit_posts' => true,
'delete_posts' => true,
'read' => true,
'upload_files' => true
)
);
}
?>
上記のコードを/wp-content/plugins/add-contributor-plus-role/add-contributor-plus-role.php
に追加してください、OR /add-contributor-plus-role/add-contributor-plus-role.phpフォルダとファイルをローカルに作成して、Zipファイルに追加して、Pluginsを使ってアップロードしてください>新規追加>アップロードユーザーロールの名前を自由に変更してください。
プラグインをアクティブにすると、役割が追加されます。プラグインを無効にして削除することができます。新しく作成されたユーザーロールには影響しません。
気が変わって "Contributor Plus"ユーザーロールを削除したい場合は、add_role行の代わりに(;セミコロンまで)以下を使用して、もう一度プラグインをアクティブにします。
remove_role( 'contributor_plus' );