Cómo eliminar los comentarios de una Entrada o Página de WordPress en Bulk (sin plugins)

Te muestro como crear una modificación de WordPress, para que en adelante puedas borrar todos los comentarios de una entrada o página con tan solo un clic (en bulk), sin plugins y gratis.

  • Tiempo de implementación: 10/15 min
  • Nivel de dificultad: Fácil

Creamos un plugin propio

Primero, crea una nueva carpeta en wp-content/plugins/ llamada delete-comments-bulk.

Dentro de esa carpeta, crea un archivo llamado delete-comments-bulk.php.

Introduce este código en ese archivo. Puedes personalizar el nombre del Autor con el tuyo propio si lo deseas:

<?php
/*
Plugin Name: Borrar Comentarios
Description: Plugin para borrar todos los comentarios de una entrada o página específica desde el Dashboard.
Version: 1.0b
Author: Daniel Pajuelo
*/

// Agregar la opción 'Borrar todos los comentarios' en la lista de acciones de cada entrada o página
function borrar_comentarios_link_row($actions, $post) {
    $url = admin_url('admin-post.php?action=borrar_comentarios&post_id=' . $post->ID . '&post_type=' . $post->post_type);
    $url = wp_nonce_url($url, 'borrar_comentarios_nonce');
    $actions['borrar_comentarios'] = '<a href="' . $url . '" onclick="return confirm(\'¿Estás seguro de que deseas borrar todos los comentarios de esta entrada?\')">Borrar todos los comentarios</a>';
    return $actions;
}
add_filter('post_row_actions', 'borrar_comentarios_link_row', 10, 2);
add_filter('page_row_actions', 'borrar_comentarios_link_row', 10, 2); // Agregado para páginas

// Función para manejar la acción de borrar comentarios
function borrar_comentarios_handler() {
    if (isset($_GET['post_id'])) {
        if (check_admin_referer('borrar_comentarios_nonce')) {
            $post_id = intval($_GET['post_id']);
            $post_type = isset($_GET['post_type']) ? $_GET['post_type'] : 'post'; // Obtener el tipo de post (entrada o página)
            
            // Obtener todos los comentarios de la entrada o página
            $comments = get_comments(array('post_id' => $post_id));

            if ($comments) {
                foreach ($comments as $comment) {
                    wp_delete_comment($comment->comment_ID, true); // El segundo parámetro en true significa que se borrará permanentemente
                }
                
                // Actualizar el recuento de comentarios de la entrada o página
                wp_update_comment_count($post_id);
                
                wp_redirect(admin_url('edit.php?post_type=' . $post_type)); // Redireccionar según el tipo de post
                exit;
            } else {
                die('No había comentarios para borrar.');
            }
        } else {
            die('Nonce no verificado.');
        }
    }
}

add_action('admin_post_borrar_comentarios', 'borrar_comentarios_handler');

?>

Activa el plugin

Ve al Dashboard de WordPress y activa el plugin Delete Comments in Bulk

borrar comentarios en bulk wordpress

A borrar comentarios se ha dicho

Ahora, cuando vayas a la sección de páginas, verás una opción «Borrar todos los comentarios» junto a cada página. Al hacer clic en ella, se te pedirá confirmación. Si confirmas, todos los comentarios de esa entrada se borrarán.

Daniel Pajuelo
Daniel Pajuelo es ingeniero informático y SEO Senior, actualmente trabajando en Guruwalk. En su blog personal escribe sobre Inteligencia Artificial, SEO, Vibe Coding, Blockchain... Ver más

Continua leyendo

Leer más sobre: Wordpress