Visto 91 veces.

Como eliminar de golpe todo el spam o comentarios pendientes de aprobar en wordpress

Hace poco en otro blog con wordpress (no este) me ocurrió algo raro, dicho blog hacía tiempo que estaba funcionando y de tanto en cuando me entraba algún comentario spam, así que decidí activar akismet pero sin registrarlo con la api key (akismet es un plugin de wordpress programado por los mismos desarrolladores de wordpress ), total que no sé si fue casualidad o qué pero justo después de activar akismet en cuestión de 2 semanas tenía más de 2000 comentarios spam pendientes de aprobar, sospechoso verdad?

akismet se encargo de dejarlos pendientes de aprobación, si hubiera estado registrado me los hubiera marcado directamente como spam.

akismet es gratuito para uso personal pero si lo usas dentro de una página comercial hay que pagar por registrarlo.

Pero bueno voy a dejar de lado mis paranoias de conspiraciones comerciales y voy a hablar del tema importante.

La cuestión es que me dispuse a borrar todo ese spam pendiente de aprobación y la sorpresa es que wordpress no dispone de una función para mandar todos los comentarios pendientes de aprobación ni los marcados como spam directamente a la papelera, si no que tienes que ir marcando de veinte en veinte y mandarlos a la papelera, vamos algo inaceptable si pretendes eliminar 2500 comentarios, ¿quizás este hecho a conciencia para que sea tedioso y te plantees la compra de una licencia de akismet? Lo cierto es que es raro que no exista una funcion tan básica a estas alturas en wordpress.

Bueno al grano vamos a ver cómo solucionar el problema con una simple consulta y dejando que wordpress haga el trabajo final para que no hayan problemas relacionales de id.

Para empezar hay que saber que los comentarios se guardan en la tabla wp_comments y que los comentarios se clasifican como pendientes, aprobados, spam o basura.

Dichos valores se especifican en el campo comment_approved y deben ser los siguientes: 0, 1, spam y trash.

[0] Un valor “0” indica que es un comentario pendiente de aprobar
[1] Un valor “1” indica que es un comentario aprobado
[spam] Un valor “spam” indica que es un comentario spam
[trash] Un valor “trash” indica que es un comentario enviado a la papelera

Por lo tanto sabiendo eso, si quisiéramos mandar todos los comentarios pendientes de aprobación a la papelera ejecutaríamos la siguiente consulta:

Con esa consulta estamos diciendo que actualice el campo comment_approved con el valor ‘trash’ de todos los comentarios  cuyo mismo campo comment_approved sea igual a ‘0’, es decir pendiente de aprobar.

Y si quisiéramos mandar a la papelera todos los comentarios marcados como spam a la papelería seria prácticamente igual

Una vez mandados todos los comentarios spam o pendientes de aprobación a la papelera  solo tendremos que ir a la papelera de wordpress desde el panel de control del propio wordpress y pulsar el botón vaciar papelera y listo, wordpres se encargara de borrar correctamente los comentarios sin dejar registros huérfanos relacionados con la tabla wp_commentmeta