En determinados casos necesitamos ocultar comentarios y trackbacks en Wordpress, por ejemplo al hacer una aplicación con Custom Post Types para uso interno.

Para ello añadiremos el siguiente código en el archivo functions.php (en nuestro tema hijo mucho mejor ;))

// BORRO LOS COMENTARIOS Y TRACKBACKS

// Inhabilitar el soporte para comentarios y trackbacks en tipos de publicaciones
function exi_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', 'exi_disable_comments_post_types_support');
// Cerrar comentarios en el front-end
function exi_disable_comments_status() {
return false;
}
add_filter('comments_open', 'exi_disable_comments_status', 20, 2);
add_filter('pings_open', 'exi_disable_comments_status', 20, 2);
// Ocultar comentarios existentes
function exi_disable_comments_hide_existing_comments($comments) {
$comments = array();
return $comments;
}
add_filter('comments_array', 'exi_disable_comments_hide_existing_comments', 10, 2);
// Eliminar la página de comentarios en el menú
function exi_disable_comments_admin_menu() {
remove_menu_page('edit-comments.php');
}
add_action('admin_menu', 'exi_disable_comments_admin_menu');
// Redireccionar a cualquier usuario que intente acceder a la página de comentarios
function exi_disable_comments_admin_menu_redirect() {
global $pagenow;
if ($pagenow === 'edit-comments.php') {
wp_redirect(admin_url()); exit;
}
}
add_action('admin_init', 'exi_disable_comments_admin_menu_redirect');
// Eliminar metabox de comentarios del panel
function exi_disable_comments_dashboard() {
remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
}
add_action('admin_init', 'exi_disable_comments_dashboard');
// Eliminar enlaces de comentarios de la barra de administración
function exi_disable_comments_admin_bar() {
if (is_admin_bar_showing()) {
remove_action('admin_bar_menu', 'wp_admin_bar_comments_menu', 60);
}
}
add_action('init', 'exi_disable_comments_admin_bar');

Con esto eliminamos todo rastro de comentarios en nuestras páginas, post y escritorio.