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:
| Mode | Where it runs | What it does |
|---|---|---|
| Iframe | Client-side | Classic iframe embed; works for every experience, full height or scrollable |
| Flex Inline | Client-side | Renders via Shadow DOM, without an iframe (Flex experiences only, Beta) |
| Flex SSR | Server-side | Renders the experience HTML on the server; the browser loads only the hydration script (Flex experiences only, Beta) |
| Store | Server-side | Mirrors 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