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.

By Christopher Ross. Last updated .

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
The Audit trail box in the WordPress post editor, listing three entries: created as Draft, changed from Draft to Pending, and rescheduled to March 3, 2027, each with the person and time.
The audit trail box in the post editor, after a draft was submitted and then dragged to a new date. Sample content.

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 6662

Output 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, 2027

Add --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.

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.