Audit trail
A WordPress audit trail for post status changes and date moves
When a story goes live early or comes back down, the answer to "who did that" should take a second, not a search through revision screens.
Record
Every status change and date move, on every path
WordPress keeps revisions of content but very little about a post's life around it. Editloft adds a plain history of the moments that matter: it was created, it went to review, someone moved the date, it published.
- Who made the change, and when
- Whether it came from the editor, the calendar, WP-CLI or a scheduled publish
- Date moves are logged too, including moves back to unscheduled

Read
See a post's status history with WP-CLI, REST or the editor
In the post editor there is a meta box listing the history in plain sentences. Over REST there is a read-only editloft_audit_trail field on each post. From a terminal, one command prints the history, oldest first, as a table with the columns time, actor and detail:
wp editloft audit 6662Output from a demo post (names are sample data):
time actor detail
September 20, 2026 3:58 pm Jordan Lee Created as Draft
September 20, 2026 3:58 pm Jordan Lee Changed status from Draft to Pending
September 20, 2026 4:00 pm Sam Rivera Rescheduled from September 20, 2026 to March 3, 2027Add --format=json, csv or yaml when a script needs to read it. The detail column uses the same wording as the editor's meta box, so the two always agree.
- In the editor the newest ten changes show first and the rest sit behind a disclosure, with relative times and the exact time on hover
- The REST field is visible only to people who can edit the post
- No SQL needed to answer who changed a status
- Also see the developer notes for the WP-CLI command and filters
Trust
Stays in your database
The trail is stored with the post on your own server. Editloft includes no analytics, sends nothing anywhere and has no cloud component.
Questions
Audit trail FAQ
Where is the audit trail stored?
In your WordPress database, attached to the post as post meta. Nothing leaves your site.
What does it record?
Status changes, including the moment a post is created, and date moves, including moving a post back to unscheduled. Each entry notes who did it and whether it came from the editor, the calendar, WP-CLI or a scheduled publish.
Who can read it?
Anyone who can edit the post. The REST field returns nothing to people who cannot.
Does it record changes made by scripts?
Yes. It listens for status changes from every path, including WP-CLI and scheduled publishes, where the user is recorded as the system.
Also in Editloft
More about the Editloft plugin
Editorial calendar
Plan the week, drag stories between days, subscribe from your own calendar app.
Read about the editorial calendar →Status transitions
Writers submit, editors publish, and the rules are yours to change.
See how the status rules work →For developers
REST, WP-CLI, filters and a test suite.
Read the developer notes →Free, open source, GPLv2
Try Editloft on a staging copy of your site
It is free, it takes a minute to install, and you can switch each module off again from one settings screen.