Comment éditer leurs messages publiés laisser aux contributeurs de créer une nouvelle révision (projet)

wordpress.stackexchange https://wordpress.stackexchange.com/questions/17369

Question

J'utilise un type de poste personnalisé pour laisser les contributeurs ont une page personnelle sur le site.

Chaque fois qu'un utilisateur enregistre sur mon site un script crée un poste de type personnalisé qui a l'utilisateur l'enregistrement comme l'auteur.

Pour modérer les entrées des utilisateurs ce poste est publié par un éditeur.

Je voudrais les utilisateurs (collaborateurs) être:

  • Impossible d'ajouter d'autres messages de ce type personnalisé;
  • capable de modifier le leur message déjà publié l'auteur;
  • et leurs modifications doivent être approuvées par un éditeur avant d'être publié.

J'utilise utilisateur Rôle éditeur pour gérer les rôles et capacités.

Est-il possible de le faire?

Était-ce utile?

La solution

Utilisation de l'éditeur de rôle ou de la portée du rôle que vous pouvez définir des contributeurs à modifier vous type personnalisé poste, mais pas publier pour chaque changement sera défini comme projet jusqu'à l'approbation, et de limiter la création de nouveaux postes de votre type de poste personnalisé, vous pouvez utiliser mon Bainternet messages Création Limites

Mise à jour

Pour l'approbation de la force re modifications ajouter ce code

add_filter( 'wp_insert_post_data', 're_aprove', '99', 2 );
function re_aprove( $data, $postarr ) {
    //check if current user is not admin
    if ( ! current_user_can( 'manage_options' ) && 'YOUR_CUSTOM_TYPE' === $postarr['post_type'] ) {
        if ( 'publish' === $data['post_status'] ) {
            $data['post_status'] = 'pending';
        }
    }
    return $data;
}

et le changement YOUR_CUSTOM_TYPE à votre nom du type de poste personnalisé.

Autres conseils

mine ne fonctionnait pas jusqu'à ce que j'ai ajouté le '99', 2); à la fin de la add_filter.

Voici la référence à pourquoi: http://codex.wordpress.org/Plugin_API/ Filter_Reference / wp_insert_post_data

add_filter('wp_insert_post_data','re_aprove', '99', 2);
function re_aprove( $data , $postarr ){
    global $current_user;
    get_currentuserinfo();
    //check if current user is not admin
    if (!current_user_can('manage_options') && $postarr['post_type'] == "candy-item" ){ 
        if ($data['post_status'] = "publish"){
            $data['post_status'] = "pending";
        }
    }
    return $data;
}

Enfin, j'ai résolu avec révisionnelle plug-in , http://wordpress.org/extend/plugins/revisionary/ il est utilisé pour faire exacly ce que je demande dans le titre du sujet

pour un contrôle plus précis sur les capacités (avec révisionnelle déjà intégré) il y a Rôle Scoper http://wordpress.org/extend/plugins/role-scoper/

le premier est vraiment facile à installer et à utiliser le second a besoin de beaucoup plus de pratique, userinterface il est un peu déroutant, mais il est vraiment puissant

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top