¿Hay ALGUNA forma de eliminar totalmente la función y sección de comentarios?

26

No quiero que se ejecuten consultas de comentarios. No sé nada sobre los comentarios que se mostrarán en el área de administración de WordPress.

¿Es esto posible de alguna manera?

EDITAR: elimine todos los enlaces a los comentarios de la barra de administración y toda la sección de back-end.

Peter Westerlund
fuente
Solo una nota que tendrá que eliminar manualmente el código de sus archivos de plantilla ya que no hay forma de ocultarlo con el código desde allí. Creo que si me equivoco, alguien me corrige.
xLRDxREVENGEx

Respuestas:

40

Aquí hay una lista de todas las respuestas anteriores y una eliminación del enlace de la barra de administración. Simplemente agréguelo a su archivo de función de temas o hágalo un complemento. Marcaré esto como un wiki de la comunidad ya que la respuesta de todos es correcta, solo que nadie lo agregó todo junto.

<?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
fuente
11

Para eliminar el menú Comentarios:

add_action( 'admin_init', 'my_remove_admin_menus' );
function my_remove_admin_menus() {
    remove_menu_page( 'edit-comments.php' );
}
Dzikri Aziz
fuente
Excelente. ¿Y desde el nuevo panel superior WP 3.1?
Peter Westerlund
7

Esto debería eliminar el soporte para comentarios en su sitio:

add_action('admin_menu', 'remove_comment_support');

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

Sin embargo, no sé si ocultará cada mención de comentarios en la sección de administración. El cuadro "En este momento" en el tablero de mandos está codificado en su mayoría, por lo que tendrías que ocultar ese cuadro o hackear para filtrar la línea sobre "Comentarios". Pero debería eliminar el texto de "comentarios" en cualquier otro lugar que se me ocurra.

goldenapples
fuente
Pero todavía es visible en el menú de administración. No quiero eso
Peter Westerlund
3

Esto no lo eliminará de su marcado per se , pero puede ocultar fácilmente el enlace de la barra de administración de WP 3.1 (tanto visualmente como de lectores de pantalla) agregando la siguiente línea al CSS de su tema:

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

Poisontofu
fuente
Mientras leía un poco más sobre este tema, encontré esta publicación en Six Revisions que cubre cómo ajustar una gran parte de la interfaz de administración, incluida la eliminación de todos los rastros de una función de comentario.
poisontofu
... y si por alguna razón desea dejar algo de esto para los usuarios de nivel de administrador, use la current_user_canfunción, por ejemplo: if (!current_user_can('level_10'))solo para usuarios que no sean administradores.
poisontofu
Los niveles de usuario están en desuso. Utilice 'manage_options' o alguna otra capacidad en su lugar.
scribu
@scribu: Me preguntaba sobre esto, no pude encontrar ninguna referencia reciente a los niveles de usuario en el WP Codex. Gracias por avisarme ( esta tabla de roles y capacidades me ayudó a obtener las capacidades de mi cabeza).
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');

Fuente

Manolis
fuente