Desabilitar totalmente os comentários no WordPress

Categoria

Geral, WordPress

Postado em

29 de maio de 2019

Última Atualização

29 de maio de 2019

Visualizações

1633

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