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 .hype5 root 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, screen toplevel_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_FUAJEE is not false and the hype5_theater_fuajee_enabled filter 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, not parent_base (for app users it is now hype5t-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_addons filter; the hype5/theater/ready action 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.