Desactivar y eliminar las revisiones de posts en WordPress

A partir de WordPress 2.6 se incluye una característica que permite guardar revisiones automáticas de posts. Por ejemplo, si hemos posteado un artículo y luego se nos ocurre cambiar una letra o un tilde, se guardará una copia de ese post, algo que podría servir si queremos volver a la versión anterior del artículo. Pero por ejemplo, si lo editamos unas 5 veces, tendremos 5 revisiones de ese único post. Para que tanto?

Esto fácilmente genera que se pueda duplicar el tamaño de nuestra tabla de posts, ya que por cada revisión se crea una copia de ese post. Tal vez en un blog con pocos artículos no se haga notar mucho, pero a la larga es un problema ya que la base de datos engorda y esto genera más consumo de CPU y tiempo de procesamiento cuando se consultan los datos.

Sería lógico que estuviera a la vista la opción de desactivar las revisiones de posts, pero los desarrolladores de WordPress son más inteligentes que yo así que ellos sabrán. Hasta hace poco se podía editar el archivo wp-config.php y agregar la siguiente línea para desactivar las revisiones:

   define('WP_POST_REVISIONS', false);

Pero parece que en las últimas versiones no funciona, así que debemos editar el archivo default_filters.php que se encuentra en la carpeta wp-includes y buscar la siguiente línea:

   add_action( 'pre_post_update', 'wp_save_post_revision' );

La comentamos, dejándola de esta manera:

   #add_action( 'pre_post_update', 'wp_save_post_revision' );

Con ello no se crearán nuevas revisiones de posts. Tal vez si lo hubieran pensado menos, podrían ponerle un límite de revisiones o dejar que el usuario pueda especificar esto en el tablero, pero podemos recurrir nuevamente al wp-config.php y agregar la siguiente línea si queremos por ejemplo una revisión única:

   define('WP_POST_REVISIONS', 1);

Y creo que hasta tener una revisión por cada post en mi caso sería mucho, pero se podría poner 3, 5 o las que se quiera.

Ahora, que hacemos con todas las revisiones ya creadas, por ejemplo,2753 revisiones de posts?

Revisión de posts en WordPress

Miles de revisiones de posts en WordPress

Lo que tenemos que hacer es eliminar todas las revisiones ya existentes, algo que podemos hacer ejecutando esta consulta SQL desde PhpMyAdmin (antes conviene respaldar nuestra base de datos):

   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'

Para todo esto hay un plugin llamado Revision Control, aunque no lo he probado ya que lo anterior me funcionó, pero por si acaso les resulta más facil. Hay otro llamado Delete Revision que también sirve para eliminar las revisiones de posts guardadas. Y si a alguien no le funciona o encuentra otra forma que avise, ya que WordPress va hacia adelante, luego hacia atrás y es muy cambiante :roll:

Compartir: Facebook Twitter votar

Etiquetas: Wordpress

2 ComentariosSuscribete a los comentarios

  1. 21 Agosto 2009, 18:54 #

    Si te interesa otro muy bueno que uso yo para estos menesteres es GD Press Tools.

    Saludos

    ResponderResponder
  2. Nico (186)
    22 Agosto 2009, 0:24 #

    @shakaran: gracias por el dato, no había probado ese plugin, veremos que tal es. Un saludo

    ResponderResponder

Deja tu comentarioSuscribete a los comentarios

Tu email no será desvelado. Los campos obligatorios están marcados con un *

*
*

Suscribete a HimsomnioSuscribete

Suscribete a nuestro canal RSS o ingresa tu e-mail y recibe las novedades directamente en tu direccion de correo electronico: