For developers
Small modules you can read in an afternoon
Editloft is written so that a developer can see exactly what it does. Each feature is a module, every behaviour that a team might want to change is a filter, and the parts that matter are tested.
Script
Read history without SQL
wp editloft audit <post_id> prints a post's audit trail in the same wording the editor shows. The same data is available in the REST API as a read-only field, so a dashboard or a migration script can use it.
- WP-CLI publishes are never gated, and they are recorded
- REST access follows the post's own edit permission
Extend
Filters where a team would want them
The transition graph, the calendar capability and the calendar query are all filterable. Change who can publish, who can see the calendar, or which posts the calendar loads, without forking the plugin.
- A status that is not in the graph is not gated, so extending it is safe
- GPLv2 or later: fork it if a filter is not enough
Trust
Tested and readable
A PHPUnit suite of 22 tests covers the rules per role, the audit writes and the calendar's unscheduled logic, and it runs in CI. The repository is public, issues and pull requests are welcome, and the license and upstream credits are kept intact.
Reference
Extension points
| Name | Type | What it does |
|---|---|---|
editloft_status_transition_graph | Filter | Reshape the allowed status moves per role, or return an empty array to disable enforcement. |
editloft_view_calendar_cap | Filter | Change the capability required to see the calendar. |
editloft_rest_calendar_query_args | Filter | Adjust the query the calendar's REST endpoint runs. |
editloft_audit_trail | REST field | Read-only audit entries on each supported post type, for people who can edit the post. |
wp editloft audit <post_id> | WP-CLI | Print a post's audit trail as plain sentences. |
/wp-json/editloft/v1/ | REST | Calendar events and the date-save endpoint the calendar uses. |
Questions
For developers FAQ
Is there a test suite?
Yes. A PHPUnit suite of 22 tests covers the transition rules per role, the audit log writes and the calendar's unscheduled test. It runs in CI.
How is the plugin organised?
Each feature is a module under modules/ that registers itself with a small loader. A module that is switched off loads nothing.
What are the version numbers?
Versions use the scheme 0.6DDD.HHMM, where DDD is the day of the year and HHMM is the build time. The plugin is pre-1.0.
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 →Audit trail
A record of every status change and date move, with the person and the path.
Read about the audit trail →Status transitions
Writers submit, editors publish, and the rules are yours to change.
See how the status rules work →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.