CMS and API

WordPress implementation guide.

Choose widget or API delivery deliberately, keep the original page canonical, and publish language versions through revisions.

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

    Inventory source types, identifiers, fields, locales, owners, and publication states.

  2. 2

    Choose the delivery pattern from volume, latency, editorial control, and failure tolerance.

  3. 3

    Map the source record to a separate language-version record with durable linkage.

  4. 4

    Add authentication, idempotency, retry, cache invalidation, logging, and access controls.

  5. 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 pointRecordAcceptance criterion
BaselineObserved current stateSource and date recorded
DecisionSelected option and rationaleRisk and audience considered
EvidenceTest, document, or measureReviewable and version-specific
ApprovalName, role, and dateAll 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.

PatternBest fitPrimary control
WidgetFast addition to a controlled siteAccessible fallback and failure state
Plugin workflowEditors work entirely in WordPressRoles, nonces, capabilities, and revisions
Server-side APIIndexed, cacheable, resilient pagesQueue, 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. 1

    Register the language-version record and required metadata with sanitisation and REST permissions.

  2. 2

    Map supported Gutenberg blocks and define behaviour for unsupported blocks.

  3. 3

    Configure roles and allowed status transitions.

  4. 4

    Generate into a separate revision and present a source comparison.

  5. 5

    Publish only after required approvals for the content risk level.

Cache safely and provide durable language navigation

Build cache keys from site, source post ID, source revision, locale, language mode, and renderer version. Invalidate the related language page when its approved revision changes, its source changes, a shared block changes, or a relevant terminology rule is republished. If processing runs asynchronously, serve the last approved version while the new draft is reviewed. Never replace approved content with an empty state because generation is unavailable.

Add language links as ordinary server-rendered anchors with clear names such as ‘Einfache Sprache’ and ‘Leichte Sprache’. Include reciprocal links to the source page and correct alternate-language metadata. Preserve keyboard focus after an in-page switch, and announce a route change only through the normal page title and heading. A missing version should explain that it is unavailable and link back to the source, not hide the control or loop back silently.

  • Cache keys include source and renderer versions.

  • The last approved page survives API and queue outages.

  • Language links work without JavaScript and use approved terminology.

  • Canonical and alternate metadata reflect the actual relationship.

  • Shared-block and glossary changes trigger affected review tasks.

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.

Authoritative sources

  1. Simple8 API documentation
  2. Simple8 delivery patterns
  3. Web Content Accessibility Guidelines (WCAG) 2.2

Put the guide into practice

Test Simple8 with representative content and use the checklist to plan a controlled production workflow.

Test your own text