Como solucionar problemas con el contador de comentarios de WordPress

Muchas veces note que WordPress, ya sea por algún plugin o bien por errores fortuitos, cuenta mal la cantidad de comentarios en el tablero. Por ejemplo este era el resultado que se podía observar en un tablero cuando todos los comentarios estaban borrados y las carpetas de trash y spam completamente vacías:

error comentarios wordpress

El error es claro, si hay 18.361 comentarios, de los cuales nosotros aprobamos todos, vaciamos las carpetas trash y spam, ¿Porque WP sigue diciendo que en total hay 18.400 comentarios? ¿Donde fueron a parar los 39 comentarios de diferencia?

Para solucionar esta diferencia que realmente no es importante pero molesta voy a darles algunas pistas mediante algunas consultas MySQL muy sencillas.

Antes de comenzar, Es muy importante que verifiquen que todos los comentarios estén aprobados, y las carpetas spam y trash completamente vacías.

La primer consulta que vamos a hacer es para verificar que WP este contabilizando correctamente la cantidad de comentarios en la base de datos, para hacer eso vamos a phpmyadmin (o consola, o lo que usen para administrar bases de datos) y escribimos:

SELECT COUNT(*) FROM wp_comments

Esta consulta va a devolver como resultado: 18400. Exactamente lo mismo que indica WordPress desde su tablero.

Ahora vamos a hacer otra consulta, que verifica la columna comment_approved. Esta columna indica mediante un número si el comentario se encuentra aprobado, en moderación, o en alguna carpeta en particular. Cuando este registro se encuentra con el valor 1 significa que el comentario esta aprobado.

SELECT COUNT(*) FROM wp_comments WHERE comment_approved = '1'

Esta consulta va a devolver como resultado: 18361. Perfecto! Lo mismo que dice el señor WordPress, ahora vamos a encontrar esos 39 malditos comentarios perdidos, para hacerlo ejecutamos:

SELECT COUNT(*) FROM wp_comments WHERE comment_approved != '1'

Y finalmente el resultado es 39. Exactamente la diferencia que tenemos. Ahora solo resta analizar de que se tratan esos comentarios, para hacer eso simplemente ejecutamos:

SELECT * FROM wp_comments WHERE comment_approved != '1'

El resultado de esta consulta serán los 39 registros de diferencia, que de manera curiosa (o no tanto) presentan un números o caracteres distintos a los que WP maneja, de ahi el error en el contador, son comentarios que están en el limbo, no están en moderación, tampoco aprobados, ni en las carpetas de spam y trash.

Ahora tenemos dos caminos, ir borrando uno a uno, o si el comentario debe aprobarse modificar el valor de la columna comment_approved por el valor 1. En el caso de querer borrar todos los comentarios que causan problemas (la mayoria de veces son comentarios vacíos, o erróneos) simplemente ejecutamos:

DELETE FROM wp_comments WHERE comment_approved != '1'

Cuidado! Esa consulta elimina todos los comentarios que no esten aprobados, antes de ejecutarla verifiquen que no tienen comentarios reales pendientes de moderación o de lo contrario los van a eliminar permanentemente.

Una vez que eliminamos los comentarios que se encontraban en el limbo de WordPress, el resultado es perfecto:

solucion contador comentarios

Nota: Les pido por favor que tengan cuidado y ejecuten las consultas con mucho cuidado, un error puede causarles la perdida de información importante, si no están familiarizados con el uso de MySQL al menos previamente hagan una copia de seguridad.

Categorizado en: