Hype5 Theater 0.7.0 · Beta — by invitation
Architecture overview
A map of Hype5 Theater for developers and theme authors, with pointers to the reference page for each part. Read the support classification first.
On this page
Support classification
Every interface in this reference is in one of these classes. During pre-release, only the presentation services — since Theater 0.7.0 the presentation API 1.0 (HYPE5_THEATER_API), including the visibility service — and the hooks and constants listed with them have been explicitly classified; the rest of the public surface is documented but not yet classified.
| Class | Meaning | Examples |
|---|---|---|
| Stable | Explicitly classified as a public contract that themes and add-ons may rely on. Changes go through deprecation. | The presentation services marked Stable (presentation API 1.0), including Data\Visibility, and the hooks and constants they list. |
| Public | A documented interface intended for themes, add-ons and site builders. Its formal stability classification is pending version 1.0; check the changelog when you update. | Shortcodes, blocks, the public REST routes, documented hooks, template keys and their version headers, labels, URL parameters, the add-on interface. |
| Provisional | Belongs to the Hype5 app and is not yet classified as stable. Works, but may change. | The hype5_theater_*_saved actions fired by the Hype5 app. |
| Internal | An implementation detail. May change in any release without notice. Do not build on it. | The /hype5-theater/v1/app/* REST routes, storage formats of post meta and options, _internal/ templates, the internal presentation services. |
The classification is pre-release (Theater 0.7.0, presentation API 1.0) and is to be confirmed at Theater version 1.0. See Compatibility and deprecation.
The plugin at a glance
| Item | Value |
|---|---|
| Plugin slug and text domain | hype5-theater |
| PHP namespace | Hype5\Theater (class names in this reference are relative to it) |
| Requirements | WordPress 6.6+, PHP 8.1+ |
| Version constant | HYPE5_THEATER_VERSION (for feature checks) |
| Database schema | version 5 (hype5t_db_version) |
| Prefix | hype5t_ for post types, taxonomies, options, tables and meta (_hype5t_) |
Storage
Content is stored as WordPress posts (productions, people, venues), taxonomy terms (genres, audience recommendations, warnings, professions), post and term meta and options — plus four custom tables for credits, performances, ticket offers and media links, which are not posts. Removing the plugin deletes nothing. See Data model.
Read public data through shortcodes, templates, REST routes and the stable services rather than directly from meta: storage formats are internal.
Public rendering pipeline
request (single page, collection address, shortcode, block)
└─ query services Data\ProductionQuery, PersonQuery, ScheduleQuery (published content only)
└─ view builders ProductionView, ProductionCard, ProductionSchedule … apply the visibility rules
└─ filter hype5/theater/view/{type} add your own prepared fields
└─ template Frontend\Render::template() child theme → parent theme → plugin
└─ hooks hype5/theater/render/before|after, section/before|after
- Templates receive prepared data only and never query the database, so a template override changes markup without touching visibility rules.
- Display options resolve in this order: shortcode attribute → the record's own Display value → global Appearance → layout defaults → built-in default. See Shortcodes → Display options.
- Styles are scoped under a
.hype5root and driven by design tokens. See CSS and design tokens. - Public texts come from the label API. See Labels.
- Visibility is enforced by the plugin, not the theme: published, password and hidden-profile rules apply in every public reader. See Security and content visibility.
Public interfaces
| Interface | Class | Reference |
|---|---|---|
| Shortcodes (collections, production parts, person parts) | Public | Shortcodes |
Blocks hype5-theater/productions, hype5-theater/schedule |
Public | Blocks |
REST hype5-theater/v1 — three read-only routes |
Public | REST API |
| Actions and filters | Public; those used by Hype5 Stage Stable; app save actions Provisional | Hooks and filters |
| PHP presentation services | Stable or Internal, per service | Presentation services |
| Template overrides | Public | Template overrides |
| Collection URL parameters | Public; query services Stable per Presentation services | Queries and URL parameters |
| Add-on manifest, layouts, sections, option lists | Public | Add-ons |
Administration
- The Hype5 app (Fuajee) — the administration: a React and TypeScript application inside wp-admin (
admin.php?page=hype5t-app, screentoplevel_page_hype5t-app), built into the plugin's assets. For everyone with a Hype5 Theater administration capability (Theater 0.7.0), Hype5 Theater is a single top-level menu entry that opens it. It talks to the plugin through private REST routes under/hype5-theater/v1/app/that check that the app is on (HYPE5_THEATER_FUAJEEis notfalseand thehype5_theater_fuajee_enabledfilter does not switch it off), that the user has a Hype5 Theater administration capability, the capability of the route and each object. Its writes go through the same domain code as the classic screens and are protected by version tokens, WordPress's post locks and named database locks. See The Hype5 app. - Compatibility screens — the classic administration pages, metaboxes in the Classic Editor and WordPress lists. For app users they are not in the menu but stay registered with unchanged addresses, page hooks (
hype5-theater_page_…), screen IDs, capabilities and form handlers; plain addresses of replaced screens redirect to the app. The classic menu returns only where the app is switched off or its files are missing. Code that recognises Hype5 screens should use the screen ID or page hook, notparent_base(for app users it is nowhype5t-app). See Compatibility screens. - Capabilities — every screen, route and save checks the plugin's capabilities. See Roles and capabilities.
Do not integrate with the app's private routes or its JavaScript; use WordPress's own hooks (save_post, edited_term and so on) to react to changes made anywhere.
Extension points
- Register an add-on with the
hype5_addonsfilter; thehype5/theater/readyaction fires after discovery. Add-ons can add layouts, sections, option-list entries, labels and templates, and keep their own values on repeatable rows. See Add-ons and Extension guidelines. - Presentation hooks never change queries, visibility rules or stored data.
Multilingual model
With WPML or Polylang, the original-language post owns shared data (performances, credits, galleries, rows); translations carry their own texts. See Multilingual sites.
Updates
The plugin declares Update URI: https://updates.hype5it.com/hype5-theater/ and receives updates from the Hype5 update service through WordPress's normal update screens.
Hype5 Stage
Hype5 Stage is a separate theme. It uses only the plugin's public contracts — the full renderers, template overrides in its hype5-theater/ folder, documented filters and presentation services — wraps every call so that a plugin change cannot break the theme, and stores no plugin data. It is the reference example for Theme integration.