Content Mirror (Git)
New in v3.3.0. The content mirror exports each Elementor page/template’s content to versioned JSON files under uploads/emcp-content-mirror/, so your own git / CI can diff and version page designs. The plugin never runs git itself. It maintains the files; your version control tracks them.
Three tools, edit_posts, always-on, enabled by default. They sit in the Content Mirror (Git) section of the EMCP Modules tab on EMCP Tools → Tools.
emcp-tools/export-content
Section titled “emcp-tools/export-content”Exports content to the mirror directory.
Input: post_id (optional): export one page/template, or omit to export all Elementor pages and templates.
Returns: the written file path (single) or per-type counts (all).
emcp-tools/restore-content
Section titled “emcp-tools/restore-content”Restores a page/template’s Elementor content from its mirror file, a file-based undo. Overwrites the current content with the mirrored version.
Input: post_id.
emcp-tools/list-content-exports
Section titled “emcp-tools/list-content-exports”Lists the mirror files currently on disk (id, type, title, exported time), so you can see what’s versioned and pick something to restore. Read-only.
Auto-export on save
Section titled “Auto-export on save”An opt-in setting (off by default) auto-exports an Elementor page or template to the mirror every time it’s saved, keeping the mirror current without manual calls. The 3.18.0 admin has no switch for it: turn it on with WP-CLI, wp option update emcp_tools_content_mirror_enabled 1 (set it to 0 to turn it off). The setting travels with Settings Sync. The on-demand tools work regardless of the setting.
Committing the mirror
Section titled “Committing the mirror”The mirror lives at wp-content/uploads/emcp-content-mirror/ as pretty-printed <type>-<id>-<slug>.json files. Point your own git repo (or a CI job) at that directory to get a diffable, revertable history of every page design. Because the plugin never shells out to git, it stays within WordPress.org’s guidelines. Versioning is entirely under your control.
Mirror vs. Change History
Section titled “Mirror vs. Change History”| Change History | Content Mirror | |
|---|---|---|
| Storage | in-database ledger | JSON files on disk |
| Scope | changes kept for the retention period (30 to 365 days) | full page/template content |
| Undo | Undo a change or a whole session on the History screen | restore from file |
| History | short-term | durable, git-managed |
Use the ledger for quick undo of recent AI edits; use the mirror for long-term, externally version-controlled history.
