WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm actually quite surprised WP hasn't already implemented this. I want to add a Cancel button to the edit post screen which will do some cleanup when pressed. After a little playing while watching my tables, here's some things I've noticed.

  1. A new post is created with a post_status of auto-draft. This is changed to draft by the autosave.js script. I'm assuming it's safe to just delete this post on cancel. How can you distinguish between a previously saved draft and a "promoted" autodraft?
  2. Post's with a post_status of draft don't produce a revision. Rather, these posts are updated without any way of reverting back. Is there a way to circumvent this behavior? Possibly by working on a copy of the original and merging on submit?
  3. Once a draft is published, a revision is also created. This leads to all posts taking up at least two rows. Wasteful in my opinion since it's impossible for the two to be different. This revision should be created the next time the post is to be edited. Is it best to just let WP handle the revisions?
  4. Post's with a post_status of publish produce an autosave at a set interval during its editing. This autosave is not removed when submitting the post, instead the post_modified date of the original is updated. Is it safe to delete this autosave on cancel? Thus, preventing the "A more recent version exists" message. Does WP have an auto clean of these or can/should I delete on submit?

Basically what I want is a way for the user to gracefully undo all changes they made during an editing session. Is there anything I have overlooked or am I safe to implement this?

share|improve this question

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.