Todo aquel que escriba en un blog creado con WordPress sabe que, sobre todo al principio, se realizan muchas modificaciones sobre una entrada, y que de cada versión de esa entrada, se guarda una copia con el nombre de revisión. El caso es que no existe una manera explícita como tal de eliminarlas – al menos que yo conozca.
Por poco que conozcas la estructura de la base de datos de WordPress, sabrás que una revisión no es más que una entrada en la tabla wp_posts dónde el campo post_type vale «revision«. Acumular muchas revisiones sobre una entrada podría ralentizar nuestro blog al tener que recorrer más registros durante las consultas a la base de datos.
Lo primero que tenemos que hacer es identificarse – a través de la línea de comandos de MySQL o cualquier otro medio de administración que usemos, como phpMyAdmin – con las credenciales presentes en el fichero wp-config.php, y ejecutar la siguiente consulta:
DELETE FROM wp_posts WHERE post_type = 'revision' ;
Y todas las revisiones de todas las entradas habrán sido borradas.
Consideraciones
- ¿Qué sucedería si un autor necesita restaurar su entrada a una versión previa? Tendrías que averiguar el campo `ID` del artículo y excluirlo de la consulta, tal que:
DELETE FROM wp_posts WHERE post_type = 'revision' AND ID <> 123;
- También podríamos incluso tener en cuenta la edad de un artículo y borrar las revisiones anteriores a cierta fecha, ya sea de creación o de modificación. Los campos relativos a la fecha son: post_date, post_modified ó sus variantes referentes al meridiano de Greenwhich: post_date_gmt y post_modified_gmt.
DELETE FROM wp_posts WHERE post_type = 'revision' AND post_date < '2015-08-02 00:00:00';
- Otra opción interesante sería borrar cualquier elemento – no sólo entradas – cuyo estado sea borrador o auto guardado:
DELETE FROM wp_posts WHERE post_status IN ('draft', 'auto-draft');
- Por último, si durante la instalación del blog indicaste un prefijo para las tablas, no olvidéis concatenarlo a la cadena «wp_posts». Si no os acordáis, usad el comando SHOW TABLES; de MySQL para listar las tablas.
- Existen plugins cuya función es optimizar la base de datos. Si no te atreves a hacerlo manualmente, puedes instalarlos. No obstante, si ya cuentas con algo de experiencia en el sector, entonces también eres consciente de los riesgos que una fiesta de third-party plugins suelen conllevar.
- Tener que autenticarse en la línea de comandos puede ser tedioso, sobre todo si no cuentas con algo de experiencia. Si ésto así fuere, y además desconfías de plugins de terceros, siempre puedes crear tu propio plugin o script.