Existe-t-il un moyen de supprimer totalement la fonction et la section des commentaires?

26

Je ne veux pas exécuter de requêtes de commentaire. Je ne veux rien sur les commentaires à afficher dans la zone d'administration de wordpress.

Est-ce possible d'une manière ou d'une autre?

EDIT: Supprimez tous les liens vers les commentaires de la barre d'administration et toute la section backend.

Peter Westerlund
la source
Juste une note, vous devrez supprimer manuellement le code de vos fichiers de modèle car il n'y a aucun moyen de le cacher avec du code à partir de là. Je crois que si je me trompe, quelqu'un me corrige.
xLRDxREVENGEx

Réponses:

40

Voici une liste de toutes les réponses ci-dessus et une suppression du lien de la barre d'administration. Ajoutez-le simplement à votre fichier de fonction de thèmes ou faites-en un plugin. Je vais marquer cela comme un wiki communautaire car la réponse de tout le monde est juste, personne n'a tout ajouté.

<?php
// Removes from admin menu
add_action( 'admin_menu', 'my_remove_admin_menus' );
function my_remove_admin_menus() {
    remove_menu_page( 'edit-comments.php' );
}
// Removes from post and pages
add_action('init', 'remove_comment_support', 100);

function remove_comment_support() {
    remove_post_type_support( 'post', 'comments' );
    remove_post_type_support( 'page', 'comments' );
}
// Removes from admin bar
function mytheme_admin_bar_render() {
    global $wp_admin_bar;
    $wp_admin_bar->remove_menu('comments');
}
add_action( 'wp_before_admin_bar_render', 'mytheme_admin_bar_render' );
?>
xLRDxREVENGEx
la source
11

Pour supprimer le menu Commentaires:

add_action( 'admin_init', 'my_remove_admin_menus' );
function my_remove_admin_menus() {
    remove_menu_page( 'edit-comments.php' );
}
Dzikri Aziz
la source
Génial. Et à partir du nouveau panneau supérieur WP 3.1?
Peter Westerlund
7

Cela devrait supprimer la prise en charge des commentaires sur votre site:

add_action('admin_menu', 'remove_comment_support');

function remove_comment_support() {
    remove_post_type_support( 'post', 'comments' );
    remove_post_type_support( 'page', 'comments' );
}

Je ne sais pas si cela cachera toutes les mentions de commentaires dans la section admin. La boîte "Right Now" sur le tableau de bord est principalement codée en dur, vous devez donc masquer cette boîte ou faire du piratage pour filtrer la ligne concernant les "Commentaires". Mais cela devrait supprimer le texte "commentaires" partout ailleurs auquel je pense.

pommes dorées
la source
Mais il est toujours visible dans le menu administrateur. Je ne veux pas ça.
Peter Westerlund
3

Cela ne le supprimera pas de votre balisage en soi , mais vous pouvez facilement masquer le lien de la barre d'administration WP 3.1 (à la fois visuellement et à partir des lecteurs d'écran) en ajoutant la ligne suivante au CSS de votre thème:

li#wp-admin-bar-comments { display: none; visibility: hidden; }

poisontofu
la source
En lisant un peu plus sur ce sujet, j'ai trouvé ce post sur Six Révisions qui explique comment peaufiner une grande partie de l'interface d'administration, notamment en supprimant toutes les traces d'une fonction de commentaire.
poisontofu
... et si pour une raison quelconque vous souhaitez laisser tout ceci sur pour les utilisateurs de niveau administrateur, utilisez la current_user_canfonction, par exemple: if (!current_user_can('level_10'))cible uniquement les utilisateurs non administrateurs.
poisontofu
Les niveaux d'utilisateurs sont déconseillés. Utilisez plutôt 'manage_options' ou une autre capacité.
scribu
@scribu: Je me suis posé des questions à ce sujet, je n'ai trouvé aucune référence récente aux niveaux d'utilisateurs dans le WP Codex. Merci de m'avoir fait savoir ( ce tableau des rôles et capacités m'a aidé à obtenir mes capacités de tête).
poisontofu
3
// Disable support for comments and trackbacks in post types
function df_disable_comments_post_types_support() {
    $post_types = get_post_types();
    foreach ($post_types as $post_type) {
        if(post_type_supports($post_type, 'comments')) {
            remove_post_type_support($post_type, 'comments');
            remove_post_type_support($post_type, 'trackbacks');
        }
    }
}
add_action('admin_init', 'df_disable_comments_post_types_support');

// Close comments on the front-end
function df_disable_comments_status() {
    return false;
}
add_filter('comments_open', 'df_disable_comments_status', 20, 2);
add_filter('pings_open', 'df_disable_comments_status', 20, 2);

// Hide existing comments
function df_disable_comments_hide_existing_comments($comments) {
    $comments = array();
    return $comments;
}
add_filter('comments_array', 'df_disable_comments_hide_existing_comments', 10, 2);

// Remove comments page in menu
function df_disable_comments_admin_menu() {
    remove_menu_page('edit-comments.php');
}
add_action('admin_menu', 'df_disable_comments_admin_menu');

// Redirect any user trying to access comments page
function df_disable_comments_admin_menu_redirect() {
    global $pagenow;
    if ($pagenow === 'edit-comments.php') {
        wp_redirect(admin_url()); exit;
    }
}
add_action('admin_init', 'df_disable_comments_admin_menu_redirect');

// Remove comments metabox from dashboard
function df_disable_comments_dashboard() {
    remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
}
add_action('admin_init', 'df_disable_comments_dashboard');

// Remove comments links from admin bar
function df_disable_comments_admin_bar() {
    if (is_admin_bar_showing()) {
        remove_action('admin_bar_menu', 'wp_admin_bar_comments_menu', 60);
    }
}
add_action('init', 'df_disable_comments_admin_bar');

La source

Manolis
la source