Come rimuovere completamente la funzione e la sezione commenti in WordPress?
Non voglio che vengano eseguite query relative ai commenti. Non voglio che venga mostrato nulla riguardo ai commenti nell'area di amministrazione di WordPress.
È possibile in qualche modo?
MODIFICA: Rimuovere tutti i collegamenti ai commenti dalla barra di amministrazione e tutta la sezione del backend.

Ecco un elenco di tutte le risposte precedenti con l'aggiunta della rimozione del link della barra di amministrazione. Aggiungi questo codice al file delle funzioni del tuo tema o crea un plugin. Lo segnerò come wiki della community poiché tutte le risposte sono corrette, ma nessuno le ha messe tutte insieme.
<?php
// Rimuove dal menu di amministrazione
add_action( 'admin_menu', 'my_remove_admin_menus' );
function my_remove_admin_menus() {
remove_menu_page( 'edit-comments.php' );
}
// Rimuove da post e pagine
add_action('init', 'remove_comment_support', 100);
function remove_comment_support() {
remove_post_type_support( 'post', 'comments' );
remove_post_type_support( 'page', 'comments' );
}
// Rimuove dalla barra di amministrazione
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' );
?>

Questo dovrebbe rimuovere il supporto per i commenti sul tuo sito:
add_action('admin_menu', 'remove_comment_support');
function remove_comment_support() {
remove_post_type_support( 'post', 'comments' );
remove_post_type_support( 'page', 'comments' );
}
Non sono sicuro se nasconderà ogni riferimento ai commenti nella sezione di amministrazione. La box "Right Now" nella dashboard è principalmente hard-codata, quindi dovresti nascondere quella box o fare qualche hack per filtrare la riga relativa ai "Commenti". Ma dovrebbe rimuovere il testo "commenti" in tutti gli altri punti che mi vengono in mente.

// Disabilita il supporto per commenti e trackback nei post type
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');
// Chiude i commenti in 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);
// Nasconde i commenti esistenti
function df_disable_comments_hide_existing_comments($comments) {
$comments = array();
return $comments;
}
add_filter('comments_array', 'df_disable_comments_hide_existing_comments', 10, 2);
// Rimuove la pagina commenti dal menu admin
function df_disable_comments_admin_menu() {
remove_menu_page('edit-comments.php');
}
add_action('admin_menu', 'df_disable_comments_admin_menu');
// Reindirizza gli utenti che cercano di accedere alla pagina commenti
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');
// Rimuove il metabox commenti dalla dashboard
function df_disable_comments_dashboard() {
remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
}
add_action('admin_init', 'df_disable_comments_dashboard');
// Rimuove i link ai commenti dalla 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');

Questo non rimuoverà effettivamente l'elemento dal tuo markup, ma puoi facilmente nascondere il link della barra di amministrazione di WP 3.1 (sia visivamente che per i lettori di schermo) aggiungendo la seguente riga al CSS del tuo tema:
li#wp-admin-bar-comments { display: none; visibility: hidden; }

Mentre approfondivo la lettura su questo argomento, ho trovato questo post su Six Revisions che spiega come modificare gran parte dell'interfaccia di amministrazione, incluso rimuovere ogni traccia della funzione dei commenti.

...e se per qualsiasi motivo vuoi lasciare qualcosa di questo attivo per gli utenti di livello amministratore, usa la funzione current_user_can
, ad esempio: if (!current_user_can('level_10'))
si rivolge solo agli utenti non amministratori.

I livelli utente sono deprecati. Usa invece 'manage_options' o qualche altra capability.

@scribu: Mi chiedevo proprio questo, non sono riuscito a trovare riferimenti recenti ai livelli utente nel WP Codex. Grazie per avermelo fatto sapere (questa tabella di ruoli e capacità mi ha aiutato a capire meglio le capabilities).

Esiste una soluzione già pronta che fa esattamente questo. Si tratta di un plugin sviluppato da Frank Bültge.
Documentazione: http://wpengineer.com/2230/removing-comments-absolutely-wordpress/
Scarica il plugin: https://github.com/bueltge/Remove-Comments-Absolutely
Basta installarlo e il gioco è fatto. Nessuna configurazione necessaria.
Funziona perfettamente con WordPress 3.5.
