¿Cómo eliminar las revisiones de publicaciones?

9

No he establecido un límite para la cantidad de revisiones, lo que hace que algunas de mis publicaciones tengan más de 20 revisiones, entonces, ¿cómo eliminarlas?

Por cierto, estoy usando WPMU y tengo muchos blogs, entonces, ¿cómo eliminar las revisiones de WordPress para todos mis blogs?

enormemeow
fuente

Respuestas:

10

Esta es una consulta mucho más segura de usar y eliminará las entradas relacionadas de postmeta y term_relationship, a diferencia de la consulta de deathlocks en su respuesta.

Cambie el {id} por el id de cada tabla de publicaciones de blog. Puede combinar esta consulta para ejecutar todas las tablas de publicación a la vez, pero primero intente esto en una tabla. Lo he usado muchas veces en instalaciones de WP individuales.

DELETE a,b,c
FROM wp_{id}_posts a
LEFT JOIN wp_{id}_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_{id}_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'

Después de ejecutarlo, optimice la base de datos en phpmyadmin.

Y agregue esta línea cerca de la parte superior de wp-config.php para evitar futuras revisiones:

define('WP_POST_REVISIONS', 0);

o guardar una revisión:

define('WP_POST_REVISIONS', 1);
markratledge
fuente
Tienes razón, esto también es mucho más eficiente ... publiqué mi respuesta con prisa y no noté la parte de WP MU también. +1.
deathlock
y cómo eliminar las revisiones, excepto los últimos 3?
Matoeil
2

También hay un complemento, WP Optimize que puede ayudarlo a hacer esto

Desde el sitio web:

WP-Optimize es una herramienta de optimización y limpieza de bases de datos de WordPress 2.9 ++. No requiere PhpMyAdmin para optimizar las tablas de su base de datos.

Le permite eliminar revisiones de publicaciones, comentarios en la cola de spam, comentarios no aprobados dentro de unos pocos clics.

Darronz
fuente
Describa qué hace el complemento y cómo resuelve el problema.
fuxia
1
Hay muchos complementos que limpian las revisiones y optimizan sin phpmyadmin; ninguno de ellos está claramente indicado para trabajar con WPMU o multisitio.
markratledge
¿Este complemento dañará mi base de datos?
hugemeow
He usado el complemento en un par de sitios que ejecuto sin problemas. Pero siempre es una buena idea hacer una copia de seguridad de su base de datos primero (pero esa es solo la mejor práctica).
darronz
0

Para eliminar todas sus revisiones de Wordpress, puede usar esta consulta:

DELETE FROM wp_posts WHERE post_type = "revision";

Deathlock
fuente
tengo más de 100 blogs en wpmu, por lo que debería ejecutar DELETE FROM wp_n_posts WHERE post_type = "revision"; por n veces, ¿verdad? pero esto es bastante aburrido :(
hugemeow
0

También puede agregar este código al functions.phparchivo de su tema :

if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', 3);
if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', false);

Este código verifica si WP_POST_REVISIONSse ha establecido el límite wp-config.php. Si no lo ha hecho, pasa un parámetro a la función que limita las revisiones posteriores. En el ejemplo anterior, las publicaciones están limitadas a 3 revisiones.

Esta es una buena solución cuando se crean temas para personas que no saben cómo (o no quieren) agregar código.

Tomado de wp-functions.com

NickMcB
fuente
2
Esta respuesta no habla sobre la eliminación de revisiones. Pero es un buen consejo sobre cómo deshabilitar las revisiones para contenido futuro.
Nilambar Sharma
0

Puede usar el plugin WP Sweep para limpiar las revisiones posteriores. Después de activar el complemento, vaya a Herramientas »Barrido para limpiar su base de datos de WordPress.

Ashin
fuente
0

Gracias por la respuesta, markratledge. Algo en la sintaxis con respecto a la {id} no funcionó para mí. Cambié {id} a 4009, uno de mis identificadores de publicación, pero no tuve éxito. Encontré una solución en https://dev-notes.eu/2017/11/manage-and-safely-delete-revisions-in-wordpress/

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';

Eso funcionó bien.

feli_x
fuente