Core wiring: includes/class-plugin.php with prc-revisions post type support on post and page (priority 5). Chart CPT opts in from Chart Builder.
Modules
| Class | Role |
|---|---|
Public_Revisions | Public meta, /version/{letter} content substitution, delete protection |
Future_Revisions | Fork create/merge/discard, fork meta, listing exclusion |
Rest_API | Toggle, fork, public-revisions, fork-info |
Rewrite | version rewrite endpoint on EP_PERMALINK |
Schema | prc-schema-seo version / isBasedOn / hasPart |
WP_Admin | Editor sidebar enqueue |
DataViews_Provider | All Posts STATUS badges for fork and parent rows |
Block: prc-revisions/list in src/revision-list/.
Meta
| Key | On | Purpose |
|---|---|---|
_prc_public_revisions | Parent | [{ version, revision_id }] |
_prc_fork_parent | Fork | Parent post ID |
_prc_fork_status | Fork | draft, pending_review, or merged |
_prc_active_fork | Parent | Enforces one active fork |
DataViews list rows add futureRevision: { role, label } from get_fork_info() via DataViews_Provider::indicator_from_fork_info(). Fork drafts get Future Revision. Parents with a pending fork get Has Future Revision.
Fork merge
On prc_platform_on_publish (priority 5), Future_Revisions::merge_fork() copies meta/taxonomies to parent, updates title/content/excerpt, re-parents attachments and children, fires revision_applied, marks merged, trashes fork. Failure reverts the fork to draft.
Enabling other post types
add_action( 'init', function () {
add_post_type_support( 'my-post-type', 'prc-revisions' );
} );
Plugin::get_enabled_post_types() drives fork meta registration and write checks.