Event Templates & Overriding
- View as Markdown Open this page as plain Markdown (opens in a new tab)
- Open in ChatGPT Ask questions about this page (opens in a new tab)
- Open in Claude Ask questions about this page (opens in a new tab)
- Open in Google AI Studio Ask questions about this page (Google account required) (opens in a new tab)
Eventixa allows you to control how individual event pages are displayed on your website. You can select a default event template for all events, choose a different template for a specific event, create your own custom selectable templates in your WordPress theme, or override an existing Eventixa template without editing plugin files.
This guide covers the complete Eventixa single-event template workflow, including template selection, custom template creation, theme overrides, developer helpers, and troubleshooting.
What Are Event Templates?
Event Templates control the visual structure of individual Eventixa event pages.
Depending on your Eventixa installation, you can use:
- Layout 1 — included with Eventixa Core.
- Layout 2 — available when Eventixa Pro is active.
- Layout 3 — available when Eventixa Pro is active.
- Custom Templates — templates created inside your active WordPress theme or child theme.
Eventixa supports both global and event-specific template selection.
Global Single Event Template
│
▼
Used by all events by default
│
▼
Per-event template selected?
│
┌────┴────┐
│ │
Yes No
│ │
▼ ▼
Use event Use global
specific template
template
A custom template that follows Eventixa’s folder structure is automatically discovered and added to the available template options.
Selecting the Global Event Template
The global event template defines the default layout used by individual event pages.
To select the global template:
- Log in to your WordPress Administration Dashboard.
- Navigate to Eventixa → Settings.
- Open Display.
- Open Single Page.
- Find the Single Event section.
- Under Layout, select the template you want to use.
- Save your changes.
WordPress Dashboard
│
▼
Eventixa
│
▼
Settings
│
▼
Display
│
▼
Single Page
│
▼
Single Event
│
▼
Layout
The selected layout becomes the default for all Eventixa events unless an individual event has its own template selected.
[Screenshot: Global Single Event Layout selector]
Selecting a Template for a Specific Event
You can override the global template for an individual event.
To select a template for one event:
- Navigate to Eventixa → Events.
- Create a new event or edit an existing event.
- Open Event Settings.
- Open Additional Settings.
- Find Single Event Template.
- Select the required template.
- Update or publish the event.
The available options include Default Template and any enabled built-in or custom templates.
Default Template
When Default Template is selected, the event follows the global layout configured under:
Eventixa → Settings → Display → Single Page → Single Event → Layout
Event-Specific Template
Selecting another template overrides the global layout only for that event.
For example:
Global Layout: Layout 1
Event A: Default Template → Layout 1
Event B: Layout 2 → Layout 2
Event C: Corporate Event → Custom Corporate template
[Screenshot: Edit Event → Additional Settings → Single Event Template]
Template Selection Priority
Eventixa resolves the selected single-event template in this order:
1. Event-specific template
↓
2. Global Single Event layout
If a custom or built-in template is selected, Eventixa then resolves the actual template file using the active theme and plugin template system.
For built-in templates, the file lookup order is:
1. Child theme override
↓
2. Parent theme override
↓
3. Eventixa / Eventixa Pro template
This allows you to customize an Eventixa layout safely without modifying plugin files.
Creating a Custom Event Template
Eventixa can automatically discover custom single-event templates from your active WordPress theme.
No PHP registration hook is required when you use the standard custom-template structure.
A custom template is different from an override:
- Custom Template — creates a new selectable layout.
- Template Override — replaces the markup of an existing Eventixa layout.
For most custom development, use a child theme so your files are not lost when the parent theme is updated.
Custom Template Folder Structure
Create the following directory inside your child theme:
wp-content/
└── themes/
└── your-child-theme/
└── eventixa/
└── events/
└── single/
└── corporate/
├── corporate.php
├── corporate.css
└── corporate.png
Only the PHP file is required.
| File | Required | Purpose |
|---|---|---|
corporate.php | Yes | Contains the custom single-event template markup. |
corporate.css | No | Contains styles loaded only when this template is selected. |
corporate.png | No | Provides the template preview image in the layout selector. |
Eventixa also supports .jpg, .jpeg, and .webp preview images.
Custom Template Naming Rules
The template folder and PHP filename must use the same slug.
Correct:
corporate/
└── corporate.php
Also correct:
conference-event/
└── conference-event.php
Incorrect:
corporate/
└── custom-template.php
Custom template slugs may contain lowercase letters, numbers, and hyphens.
The built-in slugs below are reserved by Eventixa and should not be used for new custom templates:
template-1
template-2
template-3
Use the theme override method if you want to customize one of those built-in layouts.
Adding Template Information
A custom template can include Eventixa template headers at the top of the PHP file.
<?php
/**
* Eventixa Template Name: Corporate Event
* Eventixa Template Version: 1.0.0
*/
Eventixa Template Name
Controls the human-readable name shown in Eventixa’s template selector.
If the name is omitted, Eventixa creates a label from the folder slug.
For example:
corporate-event
becomes:
Corporate Event
Eventixa Template Version
Allows you to identify the version of your custom template.
If no version is specified, Eventixa uses the current Eventixa plugin version as the template version.
Creating the Template PHP File
Eventixa provides the EventTemplate facade to make single-event template development easier.
Instead of creating separate queries for event information, you can use Eventixa’s existing event context and frontend components.
A basic custom template can look like this:
<?php
/**
* Eventixa Template Name: Corporate Event
* Eventixa Template Version: 1.0.0
*/
defined( 'ABSPATH' ) || exit;
use Eventixa\Events\Frontend\EventTemplate;
$event = EventTemplate::current();
if ( ! $event->exists() ) {
return;
}
?>
<div class="corporate-event-template">
<header class="corporate-event-template__header">
<h1><?php echo $event->title(); ?></h1>
<?php echo $event->image(); ?>
</header>
<div class="corporate-event-template__meta">
<div><?php echo $event->date(); ?></div>
<div><?php echo $event->time(); ?></div>
</div>
<main class="corporate-event-template__content">
<?php echo $event->description(); ?>
<?php echo $event->venue(); ?>
<?php echo $event->organizer(); ?>
<?php echo $event->speakers(); ?>
<?php echo $event->agenda(); ?>
<?php echo $event->advanced_fields(); ?>
</main>
<aside class="corporate-event-template__registration">
<?php echo $event->registration(); ?>
</aside>
</div>
This keeps Eventixa’s event data, ticket rendering, recurring-event handling, speakers, agenda, and extension integrations connected to the existing Eventixa frontend architecture.
Useful EventTemplate Methods
The following methods are useful when building a custom single-event layout.
| Method | Purpose |
|---|---|
EventTemplate::current() | Returns a template facade for the current event. |
EventTemplate::for_event( $event_id ) | Returns a facade for a specific event ID. |
$event->exists() | Checks whether a valid event context is available. |
$event->id() | Returns the Eventixa event ID. |
$event->title() | Returns the escaped event title. |
$event->image() | Renders the featured event media. |
$event->date() | Returns the formatted event date. |
$event->time() | Returns the formatted event time. |
$event->description() | Renders the event description/about section. |
$event->venue() | Renders the venue component. |
$event->organizer() | Renders the organizer component. |
$event->registration() | Renders Eventixa registration surfaces for the event. |
$event->tickets() | Renders the standard ticket selector. |
$event->map() | Renders the event map. |
$event->calendar() | Renders the Add to Calendar control. |
$event->header() | Renders the standard Eventixa event header. |
$event->event_information() | Renders the standard event information card. |
$event->sidebar() | Renders the complete Eventixa single-event sidebar. |
$event->speakers() | Renders speakers and performers assigned to the event. |
$event->agenda() | Renders the Eventixa agenda/session section. |
$event->advanced_fields() | Renders frontend advanced fields supplied by Eventixa extensions. |
$event->url() | Returns the public event URL. |
$event->data() | Returns the event data from the current template context. |
$event->context() | Returns the complete single-event presentation context. |
Using these helpers is recommended because Eventixa keeps its normal rendering logic and extension hooks in one place.
Adding Custom Template CSS
Custom template CSS is optional.
If Eventixa finds a stylesheet beside your custom template using the same slug, it automatically loads that stylesheet when the template is selected.
Example:
corporate/
├── corporate.php
└── corporate.css
The stylesheet is loaded only for the selected custom single-event layout and is loaded after Eventixa’s shared single-event stylesheet.
Example CSS:
.corporate-event-template {
display: grid;
gap: 24px;
}
.corporate-event-template__header {
margin-bottom: 24px;
}
Use template-specific class names to avoid affecting unrelated WordPress or Eventixa elements.
Avoid broad selectors such as:
h1 {
/* Avoid global rules in template-specific CSS. */
}
Prefer namespaced selectors such as:
.corporate-event-template__title {
/* Template-specific styling. */
}
Adding a Template Preview Image
You can add a preview image beside the template PHP file.
Example:
corporate/
├── corporate.php
└── corporate.png
Supported preview image extensions are:
.png
.jpg
.jpeg
.webp
The image filename must use the same slug as the template folder.
For example:
conference-event/
├── conference-event.php
└── conference-event.webp
If no custom preview image is available, Eventixa uses its default event-template preview image in the settings interface.
[Screenshot: Custom template appearing in the Eventixa Layout selector]
Parent Theme and Child Theme Templates
Eventixa can discover custom templates from both the active parent theme and child theme.
Example parent-theme template:
wp-content/themes/your-theme/eventixa/events/single/corporate/corporate.php
Example child-theme template:
wp-content/themes/your-child-theme/eventixa/events/single/corporate/corporate.php
When the same custom template slug exists in both locations, the child-theme version takes priority.
For long-term maintenance, Eventixa recommends using a child theme.
Overriding an Existing Eventixa Template
Use a template override when you want to customize an existing Eventixa layout instead of creating a new selectable layout.
Important: Never edit Eventixa template files directly inside the plugin directory. Plugin updates can overwrite those changes.
Copy the template into your active theme or child theme and preserve its relative Eventixa path.
Overriding Layout 1
Eventixa Core stores Layout 1 at:
wp-content/plugins/eventixa-events-calendar/templates/events/single/template-1.php
To override it from a child theme, copy it to:
wp-content/themes/your-child-theme/eventixa/events/single/template-1.php
You can then edit the child-theme copy.
Eventixa will use the theme template before falling back to the plugin template.
Overriding Eventixa Pro Layouts
When Eventixa Pro is active, Layout 2 and Layout 3 are also available.
Their theme override paths are:
wp-content/themes/your-child-theme/eventixa/events/single/template-2.php
wp-content/themes/your-child-theme/eventixa/events/single/template-3.php
These files override the existing Pro layouts.
They do not create additional template choices.
If you want to create a new template that appears separately in the Eventixa selector, use the folder-based custom template structure instead:
wp-content/themes/your-child-theme/eventixa/events/single/my-template/my-template.php
Custom Template vs Template Override
The two customization methods serve different purposes.
| Goal | Method | Example |
|---|---|---|
| Add a completely new selectable layout | Custom Template | single/corporate/corporate.php |
| Customize Core Layout 1 | Override | single/template-1.php |
| Customize Pro Layout 2 | Override | single/template-2.php |
| Customize Pro Layout 3 | Override | single/template-3.php |
Use a custom template when you want administrators to choose between the original Eventixa layout and your new layout.
Use an override when you want an existing layout to keep the same selector option but render your customized version.
How Template Override Lookup Works
For Eventixa frontend templates, the normal lookup order is:
Child Theme
│
▼
Parent Theme
│
▼
Eventixa Plugin
For example, when Eventixa requests:
events/single/template-1.php
it first checks the active theme for:
eventixa/events/single/template-1.php
If no theme override exists, Eventixa loads the plugin template.
This lookup architecture lets you customize Eventixa while keeping the original plugin files update-safe.
Developer Template Helpers
Eventixa includes public helper functions for developers who need to locate or render templates programmatically.
Locate a Template
$path = eventixa_locate_template( 'events/single/template-1.php' );
Returns the resolved template path after applying theme override rules.
Render a Template
$html = eventixa_render_template(
'events/single/template-1.php',
array(
'event' => $event_data,
)
);
Returns the rendered HTML.
Render a Template Part
$html = eventixa_get_template_part(
'events/list-event',
'',
array(
'item' => $event_item,
)
);
Access the Template Registry
$registry = eventixa_template_registry();
$metadata = $registry->get( 'events/single/template-1.php' );
These helpers are intended for theme and extension development. For a normal custom single-event template, the EventTemplate facade is usually the simplest approach.
Template Hooks and Filters
Advanced developers can customize template resolution and rendering through Eventixa hooks.
Common template hooks include:
| Hook | Type | Purpose |
|---|---|---|
eventixa_template_name | Filter | Modify the requested template name before resolution. |
eventixa_template_theme_candidates | Filter | Modify theme template lookup candidates. |
eventixa_plugin_template_path | Filter | Modify the plugin fallback template path. |
eventixa_located_template | Filter | Modify the final located template path. |
eventixa_template_args | Filter | Modify template variables before rendering. |
eventixa_rendered_template | Filter | Modify rendered template HTML. |
eventixa_before_template_part | Action | Run code before an Eventixa template is rendered. |
eventixa_after_template_part | Action | Run code after an Eventixa template is rendered. |
eventixa_template_override_found | Action | Fires when Eventixa loads a theme override. |
eventixa_template_not_found | Action | Fires when a requested template cannot be read. |
eventixa_template_registry | Filter | Modify Eventixa template metadata. |
Eventixa also creates template-specific variants of several render hooks using the template path as a normalized suffix.
Use these hooks when building advanced integrations. For ordinary template customization, theme overrides and custom templates are easier to maintain.
Troubleshooting Custom Templates
Custom Template Does Not Appear in the Selector
Check the following:
- The template is located inside
eventixa/events/single/in the active theme. - The custom template has its own first-level folder.
- The folder and PHP filename use the same slug.
- The slug uses only lowercase letters, numbers, and hyphens.
- The PHP file is readable by WordPress.
- You are not using the reserved
template-1,template-2, ortemplate-3slug.
Correct:
your-child-theme/eventixa/events/single/corporate/corporate.php
Incorrect:
your-child-theme/eventixa/events/single/corporate.php
The flat path is used for overriding built-in layouts, not for creating a new selectable custom layout.
The Wrong Template Is Displayed
Check whether the event has an event-specific template selected.
An event-specific selection takes priority over the global Single Event layout.
Review:
Eventixa → Events → Edit Event
→ Event Settings → Additional Settings
→ Single Event Template
If you want the event to follow the global setting, select Default Template.
Template Override Is Not Loading
Verify the override path exactly.
Correct Layout 1 override:
your-child-theme/eventixa/events/single/template-1.php
Incorrect:
your-child-theme/templates/events/single/template-1.php
The theme override directory starts with eventixa/, not templates/.
Custom Template CSS Is Not Loading
Verify that the CSS file:
- is in the same folder as the template PHP file;
- uses the exact same slug;
- is readable;
- is being tested while that custom template is actually selected.
Correct:
corporate/
├── corporate.php
└── corporate.css
Incorrect:
corporate/
├── corporate.php
└── style.css
Preview Image Is Not Displayed
Make sure the preview image uses the same template slug.
Example:
corporate/
├── corporate.php
└── corporate.webp
Supported formats are PNG, JPG, JPEG, and WebP.
Template Changes Are Not Visible
If your file changes are correct but the frontend still shows the previous result, clear any relevant caches, including:
- browser cache;
- WordPress page cache;
- object cache;
- CDN cache;
- CSS/JavaScript optimization cache.
Then reload the event page.
An Override Breaks After an Eventixa Update
Theme overrides are not replaced by Eventixa updates, but the original plugin template may change over time.
After significant Eventixa updates:
- Compare your override with the latest Eventixa template.
- Review the Eventixa changelog.
- Update your customized template where necessary.
- Test the event page on a staging website before deploying changes to production.
Best Practices
- Use a child theme for custom Eventixa templates.
- Never modify Eventixa plugin template files directly.
- Use custom templates when you need an additional selectable layout.
- Use theme overrides when you want to replace an existing layout.
- Keep custom template folder and filenames consistent.
- Use the
EventTemplatefacade instead of duplicating Eventixa event queries. - Namespace custom CSS to avoid style conflicts.
- Test templates with standard, recurring, RSVP, and ticketed events when those features are used on your website.
- Test layouts on desktop, tablet, and mobile devices.
- Review custom overrides after major Eventixa updates.
- Use a staging environment for significant template changes.
Recommended Workflow
For a new Eventixa design, a safe development workflow is:
Choose the goal
│
▼
New selectable layout?
│
┌────┴────┐
│ │
Yes No
│ │
▼ ▼
Create Override an
custom existing layout
template
│ │
└────┬────┘
▼
Use a child theme
│
▼
Test on staging
│
▼
Select the template
│
▼
Test event types and devices
This approach keeps your Eventixa customization update-safe and easy to maintain.
Related Documentation
For additional Eventixa configuration guides, see:
- Creating an Event
- Display Settings
- Events
- Venues
- Organizers
- Tickets
- Recurring Events
Next Steps
After configuring or creating your Event Template:
- Select the required global layout under Eventixa → Settings → Display → Single Page → Single Event.
- Review any events that use an event-specific template override.
- Open the event page on the frontend.
- Verify the event details, venue, organizer, registration, tickets, speakers, and agenda as applicable.
- Test the layout on desktop, tablet, and mobile devices.
- Clear website caches if recent template or CSS changes are not immediately visible.
A properly configured Event Template allows you to match Eventixa event pages to your website’s design while keeping the plugin update-safe and preserving Eventixa’s event, ticketing, registration, and extension functionality.
Developer Recommendation: Use Eventixa’s template system and child-theme overrides instead of editing plugin files. This keeps your customizations isolated from plugin updates and makes future maintenance significantly easier.
