web-dev-qa-db-fra.com

Publier les publications de l'auteur uniquement avec l'approbation de l'éditeur?

Je lance un blog multi-auteurs et je recherche une solution non plug-in.

Le rôle d’auteur auteur par défaut dans Wordpress peut publier des publications sans aucune approbation - regardez Capacités du rôle Wordpress Codex . Utiliser le rôle de contributeur pour atteindre mon objectif n'est pas possible, car le rôle de contributeur ne peut pas télécharger d'images ...

Est-il possible de donner à tous les articles d'auteurs un statut du type "brouillon" - afin que seul un éditeur puisse les publier?

6
NewUser

Ajoutez le code suivant à votre 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');
}

Cela ajoutera la capacité upload_files au rôle de contributeur. Il suffit de courir une fois; connectez-vous simplement à admin en tant qu'utilisateur avec le rôle de contributeur. Une fois la fonctionnalité ajoutée, vous pouvez supprimer (ou commenter) le code si vous le souhaitez.

Pour supprimer la fonctionnalité upload_files et rétablir le rôle de contributeur par défaut, procédez comme suit:

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');
}

Option de plugin

Parmi les suggestions de Kaiser, voici un plugin qui créera un NOUVEAU rôle utilisateur avec les fonctionnalités de Contributor (édition, suppression et lecture de messages), PLUS la fonctionnalité de téléchargement de fichiers.

<?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
        )
    );
}
?> 

Ajoutez le code ci-dessus au /wp-content/plugins/add-contributor-plus-role/add-contributor-plus-role.php, OR créez le dossier et le fichier /add-contributor-plus-role/add-contributor-plus-role.php localement, ajoutez-les à un fichier Zip et envoyez-les à l'aide de Plugins> Ajouter nouveau> Uploads. N'hésitez pas à changer le nom du rôle d'utilisateur en celui que vous souhaitiez.

Activez le plugin et le rôle sera ajouté. Vous pouvez désactiver le plugin et le supprimer. cela n'affectera pas le rôle d'utilisateur nouvellement créé.

Si vous changez d'avis et souhaitez que le rôle d'utilisateur "Contributor Plus" soit supprimé, utilisez ce qui suit à la place des lignes add_role (jusqu'au point-virgule;) et activez à nouveau le plug-in:

remove_role( 'contributor_plus' );
13
Gabriel