Hype5 Theater 0.7.0 · Beta — by invitation

Data model

On this page

Hype5 Theater stores content as WordPress posts, taxonomy terms, post and term meta and options, plus four custom tables for relationships and events that are not posts. This page describes the model at a conceptual level so that developers know where data lives; it is not a schema reference. The database schema is versioned and migrated by the plugin itself.

Post types

Post type Content Archive Default address base
hype5t_production A production: story, facts, media, visitor information yes productions
hype5t_person A person profile yes people
hype5t_venue A venue no venues

All three are public, support title, editor, excerpt, featured image and revisions, are available in REST (show_in_rest) and always use the Classic Editor. The address bases are configurable (see Settings).

Taxonomies

Taxonomy Assigned to Hierarchical Public address Term meta
hype5t_genre productions yes yes (theater-genre by default) —
hype5t_audience productions no no _hype5t_min_age, _hype5t_max_age
hype5t_warning productions no no _hype5t_warning_category (technical, content), _hype5t_warning_description
hype5t_profession people no no —

Every term can carry _hype5t_inactive (paused). Paused terms remain assigned and remain in public queries; editors no longer offer them.

Post meta

Hype5 meta keys start with _hype5t_. In outline:

  • Production — facts (_hype5t_premiere, _hype5t_premiere_venue, _hype5t_duration, _hype5t_acts, _hype5t_intermission_duration, _hype5t_language), repertory status (_hype5t_status: coming, playing, paused, archived), relationship and presentation mode, teaser, visitor texts, accessibility markers (_hype5t_access_features), gallery (_hype5t_gallery_ids), programme, ELAB identifiers, historical audience, and repeatable row lists (_hype5t_files, _hype5t_videos, _hype5t_audio_links, _hype5t_external_galleries, _hype5t_partners, _hype5t_articles, _hype5t_links, _hype5t_visitor_rows, _hype5t_credit_notes).
  • Person — birth date, sort name, company relationship, profile visibility (_hype5t_profile_visible, '0' = hidden), directory visibility (_hype5t_directory_visible, '0' = hidden), profile gallery, ELAB identifiers.
  • Venue — address fields, room, website, arrival and access notes, wheelchair and hearing-loop defaults ('1' yes, '0' no, empty unknown), coordinates.
  • Production and person — _hype5t_display: per-record presentation overrides (only stored keys override the global settings).
  • Media attachments — _hype5t_photographer, _hype5t_photographer_url.

Storage formats of meta are internal. Read public data through the shortcodes, templates, REST routes and stable services rather than directly.

Custom tables

Table names use the WordPress table prefix followed by hype5t_.

Table Holds Notes
{prefix}hype5t_credits One row per credit: production, person or free name, job, character, group, affiliation, alternating set, order, public flag. Linked to the original-language production and person.
{prefix}hype5t_performances One row per performance: production, venue, start and end in UTC, own time zone, occurrence status, room, attendance, replacement link, events, services, accessibility overrides, internal note, timestamps. InnoDB. Not WordPress posts.
{prefix}hype5t_ticket_offers Ticket offers of a performance: seller, label, URL, price range, currency, availability, note, order. InnoDB; written together with the performance.
{prefix}hype5t_media_links Links between attachments and records, for example people tagged in a production's gallery images.

On permanent deletion of an original-language post: a production's credits and gallery links are deleted, but its performances and their offers are kept as history (public output ignores performances of missing or unpublished productions); a person's credits and media links are deleted; a venue's performances lose their venue. Moving to the Trash changes nothing in these tables.

Options

Option Holds
hype5t_settings Settings: permalink bases, display defaults, clean single templates.
hype5t_appearance Global presentation settings, section orders, visible filters, colour tokens.
hype5t_custom_css Custom CSS.
hype5t_labels Public text overrides per locale.
hype5t_vocabularies The theatre's own content-type options.
hype5t_collection_routes Chosen collection pages.
hype5t_fuajee_testers Until 0.6.17: the access list of the Hype5 app (user IDs). Not read since 0.7.0 and kept unchanged; it can be deleted.
hype5t_db_version, hype5t_caps_version, hype5t_collection_rewrites Internal bookkeeping for migrations, capabilities and rewrite rules.
hype5t_caps_granted Since 0.7.0: the capabilities the plugin has granted to Administrator and Theater Manager, so that an update adds only new ones (see Roles and capabilities). Written whenever the plugin installs or updates its capabilities (on activation, and on the first admin page load by a user with manage_options after a version change); not autoloaded.

The Hype5 app also stores short-lived records in wp_options to make repeated schedule saves idempotent; they are not autoloaded, and records older than two days are removed during later saves.

Schema versions and migrations

The plugin records its database version in hype5t_db_version and compares it with the version the code expects. Tables are created and updated on activation and, after an update, on the next admin page load by a user with manage_options. A migration is marked complete only when every step has succeeded; otherwise administrators see a notice and it is retried. Settings → Advanced in the Hype5 app (or the System Status screen) shows the database version and the state of each table.

Removing the plugin does not delete tables, options or posts.