web-dev-qa-db-fra.com

L'auteur ne peut voir que son propre commentaire et peut modérer

J'essaie de faire en sorte que les choses fonctionnent de telle sorte que l'auteur ne puisse voir que les commentaires postés dans la section commentaires de l'administrateur et qu'ils puissent également modérer. Bien que l'administrateur devrait avoir toutes les autorisations.

Je n'ai qu'un code et je fonctionne bien dans tous les termes, comme afficher uniquement le commentaire de l'auteur, mais cela ne permet pas de modérer. Quelqu'un peut-il m'aider à trouver une solution où l'auteur peut modérer son propre commentaire?.

Code j'ai:

function my_plugin_get_comment_list_by_user($clauses) {
if (is_admin()) {
    global $user_ID, $wpdb;
    $clauses['join'] = ", wp_posts";
    $clauses['where'] .= " AND wp_posts.post_author = ".$user_ID." AND wp_comments.comment_post_ID = wp_posts.ID";
};
return $clauses;
};
// Ensure that editors and admins can moderate all comments
if(!current_user_can('edit_others_posts')) {
add_filter('comments_clauses', 'my_plugin_get_comment_list_by_user');
}
1
pixelngrain

Le rôle d’auteur par défaut n’ayant pas les capacités moderate_comments, vous devez donc ajouter cette capacité au rôle d’auteur. Ajoutez donc ceci à votre plug-in:

function add_theme_caps() {
        $role = get_role( 'author' ); // gets the author role
        $role->add_cap( 'moderate_comments' ); // would allow the author to moderate comments
}
add_action( 'admin_init', 'add_theme_caps');
2
Bainternet