Clarify the task and decision
This guide turns wordpress implementation guide into a reviewable operating workflow. It connects domain decisions, ownership, evidence, and acceptance so the result continues to work in production.
Choose widget or API delivery deliberately, keep the original page canonical, and publish language versions through revisions.
Practical workflow
- 1
Inventory source types, identifiers, fields, locales, owners, and publication states.
- 2
Choose the delivery pattern from volume, latency, editorial control, and failure tolerance.
- 3
Map the source record to a separate language-version record with durable linkage.
- 4
Add authentication, idempotency, retry, cache invalidation, logging, and access controls.
- 5
Test publication, source changes, unavailable results, rollback, keyboard operation, and monitoring before release.
Worked example or tool
A Gutenberg workflow maps source pages, review states, cache keys, and language navigation. In the tool, also record the baseline, owner, decision, evidence, open issue, and approval date. Use a real page or transaction so the team sees dependencies, exceptions, and the maintenance work that follows release.
| Decision point | Record | Acceptance criterion |
|---|---|---|
| Baseline | Observed current state | Source and date recorded |
| Decision | Selected option and rationale | Risk and audience considered |
| Evidence | Test, document, or measure | Reviewable and version-specific |
| Approval | Name, role, and date | All mandatory criteria met |
Choose widget, plugin, or server-side API delivery
Use a widget when deployment speed matters, the source pages already have durable identifiers, and a client-side dependency is acceptable. Use a WordPress plugin when editors need generation and review inside the administration interface. Use server-side API delivery when language versions must be indexed, cached, included in feeds, and rendered even when JavaScript is unavailable. Large publishers often combine a plugin for workflow with server-side rendering for delivery.
Document the choice against editorial control, performance, accessibility, search, failure behaviour, data flow, and maintenance ownership. The original page remains the authoritative source. A language version gets its own post or structured record, stable URL, review status, and source-revision link. Avoid storing alternate content only in an unversioned custom field or browser cache because reviewers cannot reliably approve, restore, or audit it.
| Pattern | Best fit | Primary control |
|---|---|---|
| Widget | Fast addition to a controlled site | Accessible fallback and failure state |
| Plugin workflow | Editors work entirely in WordPress | Roles, nonces, capabilities, and revisions |
| Server-side API | Indexed, cacheable, resilient pages | Queue, cache invalidation, and deployment operations |
Model source relationships and editorial states
Create a language-version post type or use a multilingual structure that supports explicit source relationships. Store source post ID, source revision ID, target locale, language mode, result ID, glossary version, review status, approvers, published revision, and review trigger. Keep the transformed block structure where possible so headings, lists, links, tables, and notices remain semantic rather than being flattened into one HTML field.
Define statuses for requested, generating, draft, subject review, language review, approved, published, stale, and failed. Map each transition to a WordPress capability, not merely a visible button. A generator can create a draft but cannot approve it. When the source changes, compare its revision with the approved source revision and move the language version to stale or review required. Do not silently publish a regenerated result.
- 1
Register the language-version record and required metadata with sanitisation and REST permissions.
- 2
Map supported Gutenberg blocks and define behaviour for unsupported blocks.
- 3
Configure roles and allowed status transitions.
- 4
Generate into a separate revision and present a source comparison.
- 5
Publish only after required approvals for the content risk level.
Test the full publishing and rollback path
Use a staging copy with representative Gutenberg blocks, custom fields, embedded forms, reusable blocks, and restricted posts. Test generation, role enforcement, review comments, scheduled publication, preview, cache invalidation, source update, stale marking, deletion, restoration, and rollback. Confirm that REST endpoints reject unauthorised reads and writes and that background jobs cannot be triggered cross-site without valid nonce or server credentials.
Before production, define queue monitoring, error ownership, credential rotation, plugin update testing, database backup, and a safe disable procedure. Acceptance requires correct rendering at common breakpoints, keyboard and screen-reader navigation, no layout shift from late content, valid structured headings, traceable approval, and restoration of the last approved revision. Record the supported WordPress, PHP, editor, multilingual plugin, and caching configurations.
Roles, evidence, and approval
Keep generation separate from publication. A successful response is a draft, not an approval. Store the source identifier and version, transformation settings, result identifier, review state, approver, and publication time. When the source changes, mark the language version for review instead of silently replacing approved content. This makes rollback and audit possible across platforms.
Operations and maintenance
The work does not end at publication. Link the language version or configuration to its source, monitor quality and service measures, and define concrete review triggers. Triggers include source changes, legal changes, new audience needs, recurring support questions, technical changes, and incidents. A named owner evaluates the trigger, opens a new revision when needed, and records renewed approval.
Release checklist
The integration uses durable source identifiers.
Credentials are stored server-side and rotated.
Timeout, retry, and rate-limit behavior are defined.
Repeated requests are idempotent.
Generated content enters a review state.
Source changes invalidate or reopen the version.
Language navigation works by keyboard and assistive technology.
Monitoring covers failures, queues, latency, and stale content.