Desabilitar totalmente os comentários no WordPress

Categoria: Geral, WordPress Tags: Postado em: 29 de maio de 2019 1036

Muitas vezes criamos um blog para um cliente ou até mesmo para uso pessoal, mas não queremos deixar os comentários ativos.

Ai recorremos a plugins para fazer esse trabalho de desativar os comentários do WordPress, o que na verdade não é necessário, quanto mais plugin, mais tempo de carregamento nosso site consome.

Então resolvi compartilhar com vocês uma forma simples de ocultar os comentários no WordPress

Primeiro passo é desabilitar os suporte aos comentários via trackback e tipos de posts

// Desabilitar o suporte aos comentários em trackback e tipos de posts
function point_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', 'point_disable_comments_post_types_support');

Em seguida vamos desabilitar o comentário no front-end

// Fechar o comentário no front-end
function point_disable_comments_status() {
    return false;
}
add_filter('comments_open', 'point_disable_comments_status', 20, 2);
add_filter('pings_open', 'point_disable_comments_status', 20, 2);

Agora vamos esconder os comentários já existentes

// Esconder comentários existentes
function point_disable_comments_hide_existing_comments($comments) {
    $comments = array();
    return $comments;
}
add_filter('comments_array', 'point_disable_comments_hide_existing_comments', 10, 2);

Vamos ocultar a página que mostra o menu no painel administrativo

// Remover a página de comentários do menu
function point_disable_comments_admin_menu() {
    remove_menu_page('edit-comments.php');
}
add_action('admin_menu', 'point_disable_comments_admin_menu');

Quando alguém tentar acessar os comentários diretamente, vamos fazer um direcionamento para isso

// Redirecionar qualquer usuário que tente acessar a página de comentários
function point_disable_comments_admin_menu_redirect() {
    global $pagenow;
    if ($pagenow === 'edit-comments.php') {
        wp_redirect(admin_url()); exit;
    }
}
add_action('admin_init', 'point_disable_comments_admin_menu_redirect');

Removendo os comentários metabox do Painel administrativo

// Remover comentários metabox do painel
function point_disable_comments_dashboard() {
    remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
}
add_action('admin_init', 'point_disable_comments_dashboard');

Por fim, e não menos importante, vamos ocultar os comentários que aparecem na barra superior do nosso painel administrativo

// Remover links de comentários da barra de administração
function point_disable_comments_admin_bar() {
    if (is_admin_bar_showing()) {
        remove_action('admin_bar_menu', 'wp_admin_bar_comments_menu', 60);
    }
}
add_action('admin_init', 'point_disable_comments_admin_bar');

Agora seus comentários estão ocultos em todas as seções do WordPress, seja, no front-end ou no backend.

Aconselho você a ir aplicando cada função para poder ver ela em funcionamento.

Abaixo vou colocar o código inteiro de uma forma otimizada.

add_action('admin_init', function () {
    // Redirecionar qualquer usuário que tente acessar a página de comentários
    global $pagenow;
    
    if ($pagenow === 'edit-comments.php') {
        wp_redirect(admin_url());
        exit;
    }

   // Remover comentários metabox do painel
    remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');

    // Desabilitar o suporte aos comentários em trackback e tipos de posts
    foreach (get_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');
        }
    }
});

// Fechar o comentário no front-end
add_filter('comments_open', '__return_false', 20, 2);
add_filter('pings_open', '__return_false', 20, 2);

// Esconder comentários existentes
add_filter('comments_array', '__return_empty_array', 10, 2);

// Remover a página de comentários do menu
add_action('admin_menu', function () {
    remove_menu_page('edit-comments.php');
});

// Remover links de comentários da barra de administração
add_action('admin_init', function () {
    if (is_admin_bar_showing()) {
        remove_action('admin_bar_menu', 'wp_admin_bar_comments_menu', 60);
    }
});

Bom, é isso que tenho para mostrar para vocês hoje. Grande Abraço!!!

Gostou? compartilhe nas redes!! ;)

Deixe seu comentário

126 Compart.
Compartilhar126
Twittar
Compartilhar
Pin