Antes de actualizar a la última versión de wordpress y empezar a pelearme con los errores tuve que desactivar todos los plugins, incluido akismet.Esto produjo una gran cantidad de spam en los comentarios.

Puede que a algunos os haya pasado que wordpress os diga que tenéis un número de comentarios que luego no es el correcto, esto ocurre porque al llegar los comentarios se incrementa el valor del campo comment_count de la tabla wp-posts. Al borrar el spam ese valor no se revisa.

Por si a alguien le ha pasado lo mismo, y no quiere pasarse horas interminables rectificando la base de datos a mano, aquí pongo un pequeño código en ruby que encontré y hace el trabajo por nosotros:

#!/usr/bin/ruby
require 'mysql'
db = Mysql.real_connect(host, user, pass, dbname)
ids = db.query("SELECT `ID` FROM `wp_posts` WHERE 1")
ids.each_hash do |post|
id = post['ID']
num = 0
comments = db.query("SELECT COUNT(1) FROM `wp_comments` WHERE `comment_post_ID`='#{id}' AND `comment_approved`='1';")
comments.each {|x| num = x[0]}
up = db.query("UPDATE `wp_posts` SET `comment_count`='#{num}' WHERE `ID`='#{id}';")
end