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!!!