El otro día llegué a un cliente y chequeando su web, me di cuenta que tenía decenas de comentarios marcados como spam. Tenía un plugin para filtrar el spam que llegaba al blog en forma de comentarios y funcionaba bien, pero claro, los comentarios se quedaban ahí, bien clasificados pero ocupando sitio.
¿Qué problema tiene dejar decenas de miles de comentarios en la base de datos? En algún sitio he llegado a ver cientos de miles. Pues aunque no afecta mucho al desempeño de la web en muchas cosas, porque no es una tabla tan accedida como puedan ser la tabla de opciones o las tablas post/postmeta, sí que tiene ciertos problemas:
Así que bueno, estuve viendo diferentes opciones pero al final me decanté por un pequeño código a medida que borrara todos los comentarios marcados como spam. Hay plugins que lo hacen pero montar un plugin para una labor tan pequeña no tiene sentido.
Y es que como siempre digo:
Os dejo el código y ahora comentamos:
add_action( 'wp_scheduled_delete', function() {
global $wpdb;
$wpdb->query("DELETE FROM $wpdb->comments WHERE comment_approved = 'spam'");
} );
Empezamos por lo primero. Si os fijáis hago uso del hook wp_scheduled_delete. Este hook está asociado a un evento que el core ejecuta una vez al día. Es el hook que usa WordPress para eliminar cosas que llevan mucho tiempo en la papelera. Nosotros no unimos a él porque es buena la frecuencia, una vez al día; y porque su acción está relacionada con lo que queremos conseguir.
A esa acción asociamos la ejecución de un pequeño código SQL, que básicamente borra todos los comentarios que estén calificados como spam.
Y es que esa columna comment_approved antes era booleana pero con el tiempo ha ido cogiendo más posibles significados y ahora fijaros todo lo que puede contener:
En la base de datos de WordPress, la columna comment_approved en la tabla wp_comments puede tener los siguientes valores:
0 → Comentario pendiente de moderación (aún no aprobado).1 → Comentario aprobado y visible en la web.spam → Comentario marcado como spam.trash → Comentario enviado a la papelera.post-trash → Comentario asociado a una publicación que ha sido eliminada.Así que nada espero haberos ayudado a resolver este pequeño gran problema que algunos tienen por culpa de todo el spam que llega en Internet.
Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.Por qué falla Bizum WooCommerce: detecta errores de credenciales, firma, entorno y pedidos para recuperar…
Elige un plugin gratuito Redsys WordPress con criterio: compatibilidad, seguridad, configuración bancaria y límites para…
¿Qué necesito para activar CECA Online? Revisa contrato bancario, datos del terminal, seguridad, pruebas y…
Aprende a elegir una pasarela para suscripciones en WordPress: revisa recurrencia, compatibilidad, seguridad y soporte…
Elige un plugin Bizum WordPress compatible con tu flujo de venta, configura la pasarela bancaria…
Aprende cómo aceptar CECA en reservas WordPress, configurar pagos seguros y confirmar cada reserva sin…