web-dev-qa-db-ja.com

編集者の承認がある場合にのみ投稿を投稿しますか?

私はマルチ作家のブログを運営していて、私は非プラグインソリューションを探しています。

Wordpressのデフォルトの作成者ユーザーロールは承認なしで投稿を公開できます - ロール機能Wordpress Codex を見てください。投稿者の役割では画像をアップロードできないため、投稿者の役割を使用して私の目標を達成することはできません...

すべての著者投稿を "下書き"のようなステータスに設定することは可能ですか - 編集者だけが投稿を公開できるようになりますか?

6
NewUser

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' );
13
Gabriel