Eliminar revisiones wordpress

WordPress guarda por defecto una revisión de un post o página cada vez que pulsamos el botón de actualizar, y con ello, guarda una copia de todos los datos de dicho post en la base de datos (aquí os dejo una descripción de cómo es)), junto con los meta datos del post y de los plugins que tengan efecto, véase Advanced Custom Fields o WPML entre muchos otros.

Esto no supone problema alguno para blogs pequeños con apenas 10 artículos y 5 páginas estáticas, pero si nuestro blog ya es grande o tiene vistas a serlo, habría que tener cuidado y tratar de limitar y/o eliminar revisiones WordPress, ya que de lo contrario la Base de Datos puede empezar a crecer sin control, con los problemas que ello puede conllevar en hostings gratuitos o no pero sí compartidos, y los problemas generales de rendimiento.

Limitar revisiones WordPress

Para limitar las revisiones, que no es lo mismo que eliminar revisiones WordPress, hay que añadir la siguiente línea al fichero de configuración wp-config.php:

define( 'WP_POST_REVISIONS', 5 );

Con esta línea, lo que se hace, es limitar el máximo de revisiones para un post a 5, de este modo cuando ya tengamos 5 revisiones y WordPress vaya a guardar una nueva, eliminará la revisión más antigua y guardará la nueva. Así ya estamos limitando el crecimiento exponencial de nuestra Base de Datos, y de este modo tendremos copias guardadas para aquéllos que necesitan poder volver atrás en el tiempo.

no guardar revisiones

Como se ve en la imagen anterior, si queremos limitar revisiones WordPress hasta el punto de no guardar ninguna, se podrá poner el valor numérico a 0, y desde ese momento, WordPress simplemente no guardará más revisiones, sin embargo, ¿qué ocurre con las que ya había? ¿Cómo consigo eliminar revisiones WordPress? Sigue leyendo.

Eliminar revisiones WordPress

Llegados a este punto quiere decir que nos hemos propuesto limitar las revisiones de WordPress porque, quizás, la Base de Datos ya es muy grande, pero limitarlas una vez creadas no es suficiente, y es necesario eliminar todos esos datos innecesarios, para ello lo único que hay que hacer es ejecutar una consulta o query de eliminación que busque en las tablas necesarias todos los datos de todos los posts y elimine aquéllos que pertenecen a una revisión.

DELETE a,b,c

FROM wp_posts a

LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)

LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)

WHERE a.post_type = 'revision'

Ejecutando esta consulta a través del phpMyAdmin de nuestro servidor, con nuestro usuario y contraseña, se eliminarán todos los datos de todos los posts asociados con las revisiones.
A partir de ese momento, según el límite que le hayamos impuesto al número de revisiones, se volverán a guardar hasta dicho límite.