How to delete WordPress post revisions

Having revisions on my posts is nice I suppose. But I was starting to get a bit annoyed with the increasingly long list of revisions in each post. And they really did get long. Mainly because I am in a bit of a testing and experimenting phase which means that I have done a lot of adjustments to almost every single post so far because I don’t have 100% control on how I want things or how things will end up looking and so on :P There’s also of course all the obligatory spelling errors I only discover after I have clicked Publish :P

Anyways, I found a nice little MySQL snippet to clear out all of them in a French comment to a blog post. Thought I could share it here. That way I won’t lose it either :)

DELETE x,y,z
FROM wp_posts x
LEFT JOIN wp_term_relationships y ON (x.id = y.object_id)
LEFT JOIN wp_postmeta z ON (x.id = z.post_id)
WHERE x.post_type = 'revision'

You can swap delete x,y,z with select * to check that it will delete what you really want to.

Remember that if you have a table prefix other than ‘wp_’ set in your wp-config.php, you need to change that in your SQL script before you run it. The line looks like this in my config file:

$table_prefix  = 'wp_';

I can also recommend setting WP_POST_REVISIONS to something in your wp-config.php file. Just search for REVISIONS in that file. If you don’t find it, you can just add it somewhere. The line should look like the following, where N would be how many revisions you want to allow, or -1 if you want them all:

define('WP_POST_REVISIONS', N);

I will still run the SQL script once in a while though, cause after a while my posts become sort of stable, and having revisions with my spelling errors hanging around for ever doesn’t really make sense in my head :P

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>