Cómo desactivar o limitar las revisiones en WordPress

En la versión 2.6 de WordPress se añadió la funcionalidad de que se guardasen todas las revisiones de los artículos. Esto viene bien por si quieres volver a una versión anterior o comparar los cambios que se hayan hecho, y aunque pueda parecer muy útil, tiene inconvenientes. ¿Qué problema podría tener esto? ¿cómo evitarlo?

El problema es simple, el de llenar la base de datos de cosas que seguramente nunca te hagan falta para nada. El sistema de revisiones en WordPress está muy bien en ciertos casos, se me ocurre por ejemplo, que si hay más de un usuario que tiene acceso a la escritura del post, con las revisionesn pueden ver qué cosas ha cambiado cada uno, o qué correcciones se han hecho. Pero si eres un perfeccionista y tienes el defecto de que cada vez que lees tu post, cambias una palabrita, una coma, una negrita por una cursiva… entonces no es difícil que te encuentres con un porcentaje de revisiones mucho mayor que el de artículos publicados:

Gráfico de número de entradas en WordPress

Diagrama que refleja el número de entradas publicadas vs revisiones

Solución tajante, vamos a quitar las revisiones totalmente, aunque también te comentaré cómo reducirlas a una o dos por artículo, con lo que conseguimos un solución intermedia. Pero cuidado, aunque no queremos las revisiones sí queremos el autoguardado, no vaya a ser que se apague el ordenador y perdamos lo que hemos escrito. Configuraremos bien estas dos cosas.

Tenemos que abrir el archivo de configuración “wp-config.php” y escribir las siguientes definiciones de constantes:

define('AUTOSAVE_INTERVAL', 300);
define('WP_POST_REVISIONS', false);

Con eso estamos diciendo que queremos un guardado automático cada 5 minutos (el valor se establece en segundos) y que no queremos saber nada de las revisiones en las entradas. Estas líneas puedes ponerlas en cualquier sitio que quieras del archivo, pero tiene que ser antes de la línea en la que aparece el ABSPATH, de hecho hay un comentario que te avisa de que no cambies nada a partir de ese punto:

/* ¡Eso es todo, deja de editar! Feliz blogging */

Si en vez de cancelar totalmente las revisiones, queremos limitarlas, también podemos hacerlo fácilmente si en vez de “false” le ponemos el número de revisiones máximas que queremos que pueda tener cada post. Si queremos como máximo un par de revisiones, ponemos:

define('WP_POST_REVISIONS', 2);

¿Y qué hacemos si el daño ya está hecho? ¿y si llevamos varios meses publicando y ya tenemos la base de datos llena de esas indeseables revisiones de WordPress? Hay formas de eliminarlas ejecutando una sentencia SQL directamente en la base de datos, que quitan los posts que sean de tipo “revision”:

DELETE FROM wp_posts WHERE post_type = "revision"

Pero en casos más raros, en los que a una revisión le hayas asociado una categoría o una etiqueta y luego la hayas quitado en la versión final del artículo, se quedarán cosas sueltas por ahí en la base de datos (en tablas intermedias). En ese caso la forma correcta de eliminar las revisiones y dejar todo super limpio sería la siguiente:

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'

AVISO IMPORTANTE!! Aunque yo lo he probado y me ha funcionado, no quiere decir que a ti te vaya a ir igual de bien. Si sabes lo que estás haciendo, adelante, pero haz una copia de seguridad de las tablas antes. Si no estás muy seguro te recomiendo que uses algún plugin que haga el trabajo por ti. Yo suelo ser reticente a meter plugins para todo, pero al fin y al cabo será instalar, ejecutar y eliminar plugin. Si eliges esta opción, puedes usar este plugin: Better Delete Revision. Aún así, haz copia de seguridad siempre.

Parece que tenemos un problema menos del que preocuparnos, pero ¿era realmente un problema? Por lo visto, el cofundador de WordPress Mike Little, ha dicho en alguna ocasión que “las revisiones no ralentizan el funcionamiento de WordPress” ya que dice que solamente se tienen en cuenta (es decir, se incluyen en las peticiones a la base de datos) cuando se editan los post, pero nunca en otros contextos. Pues bien, puede que la diferencia de rendimiento con revisiones y sin revisiones, sea despreciable (está claro que algo afecta), pero hay otros motivos por los que es mucho más deseable tener una base de datos ligera, por ejemplo, al hacer copias de seguridad. En cualquier caso, es elección del usuario y en este caso el usuario eres tú.

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn