Skip to main content

Ceros WordPress Plugin

The Ceros WordPress Plugin adds a Ceros block to the WordPress block editor. Authors browse their Ceros account, pick an experience, and see it previewed in place — no copying embed codes between tabs, and a choice of how the experience is delivered to the page.

Delivery modes​

The block supports four ways to render an experience, so you can trade off freshness, offline resilience, and rendering approach:

ModeWhere it runsWhat it does
IframeClient-sideClassic iframe embed; works for every experience, full height or scrollable
Flex InlineClient-sideRenders via Shadow DOM, without an iframe (Flex experiences only, Beta)
Flex SSRServer-sideRenders the experience HTML on the server; the browser loads only the hydration script (Flex experiences only, Beta)
StoreServer-sideMirrors the experience and its assets into your uploads directory, so pages render with no runtime dependency on the Ceros CDN

Adding an experience​

There are two ways to get an experience into a block:

  • Experience picker — with a Flex API key configured, authors browse their account's folder tree and select an experience directly. Folders load their experiences on expand, so large accounts stay responsive.
  • Public URL — paste the URL of a published experience. No API key needed, which makes the block usable on sites that cannot hold Ceros credentials.

Connecting to Ceros​

The API key is entered under Settings → Ceros in WordPress admin, and is encrypted at rest. It can also be supplied as a CEROS_API_KEY constant in wp-config.php, which keeps the key out of the database and out of database exports — useful when managing separate keys per environment.

Requirements​

  • WordPress 6.7+
  • PHP 7.4+
  • The PHP Sodium extension (bundled with PHP 7.2+, used to encrypt the API key)
  • A Flex API key (optional — only needed for the experience picker)

Get started​

The plugin ships as an installable ZIP on the repository's releases page. Full installation, configuration, and delivery-mode details live in the repository:

View on GitHub