Theater for WordPress


A WordPress plugin to manage and publish events for your theater, live venue, cinema, club or festival.


Theater comes with several shortcodes and widgets to show off your events. See the documentation for an overview.

Import events from your existing ticketing solution


  • Event Duplicator – This free extension adds a new action to the event editor that instantly duplicates the event. Very helpful if your need to enter a lot of events at once.
  • Events Feed – Automatically show your events in your email newsletter. Works perfectly with Mailchimp and other email marketing solutions.
  • Events Slider – Show your events in a touch enabled and responsive slider.
  • Timetable – Show your event showtimes in a clear table layout. Perfect for cinemas and festivals.
  • Kijkwijzer – Add Kijkwijzer icons to your events.
  • MPAA – Add Motion Picture Association of America (MPAA) film rating labels to your movies.
  • BBFC – Add British Board of Film Classification (BBFC) icons to your movies.

Missing features?

Submit a request on the forum.

Extending Theater for WordPress

Easy! Write your own plugins that extend Theater for WordPress. Check out my example plugin on GitHub.

Contributors welcome


  • Manage events in the WordPress admin.
  • The event editor.
  • Select how your events appear on your website.
  • Your upcoming events listed on your website.
  • Event details.


This section describes how to install the plugin and get it working.


  1. Go to Plugins Add new.
  2. Search for ‘Theater’.
  3. Look for the Theater for WordPress plugin and click on Install now.
  4. Wait for the next screen to load and click on Activate Plugin.

Add events

Theater for WordPress uses productions to group your events. Each production can have one or more events.

Add your first event:

  1. Go to Theater Events Add new.
  2. Enter a title and description for your events.
  3. Scroll down and click on Add a new date.
  4. Enter a start time that is in the future.
  5. Enter the other details for your date.
  6. Click on Save date.
  7. Add a featured image (if your theme supports it).
  8. Click on Publish.

Show your events

You can show your upcoming events on a page.

  1. Go to Pages Add new.
  2. Give your page a title (eg. ‘Upcoming events’).
  3. Click on Publish.
  4. Go to Theater Settings Display.
  5. Set Page to show upcoming events on to the page that you just created.
  6. Set Position on page to show above content.
  7. Click on Save Changes.
  8. Go to Theater Settings Style.
  9. Check Enable built-in Theater stylesheet.
  10. Click on Save Changes.

The page that you created now shows your upcoming events.


All event listings look really weird!

Make sure that you checked the ‘Enable built-in Theater stylesheet’-option in the Theater plugin settings.

I don’t see the Theater Calendar widget

Make sure that you select a page to show your event listings on in the Theater plugin settings.

I really need feature X. Can you add it?

If you are missing a feature that you really need for your website you can:

  1. submit a feature request on the forum or
  2. add it yourself and submit a pull request on GitHub or
  3. hire me.

The new feature may be added directly to the Theater plugin or as an extension so that others may benefit from this as well.


February 1, 2022
Great for beginners and very versatile later on. It has useful extensions and fast support. My favorite event plugin.
September 11, 2021
This is a good plugin ! Good : You can define a Production and Event dates of a production – That’s exactly what I want .. So for a piece of work – a play, a concert – which you put on stage on one or more occasions, then if you call this a Production, then with the plugin you can define a Production – title, description , etc, all the stuff independent of time – and then to this production you add one or more Event dates – actual date, duration, venue ticket info. – So for multiple dates you only enter the overall production info once. Also theres loads of shortcode possibilities and parameters which is great. Also for more fields the plugin supports the plugin Advanced Custom Fields out of the box Would be good to improve labelling, documentation : The docs talk about a production and events, and also the shortcodes use the terms [wpt_productions … ] and [wpt_events … ] all exactly as defined above in my Good point – that’s good … BUT in the WP Admin menu > Theater – there is no “Production” sub menu, eg to create /edit a production .. Instead there is an Events sub-menu .. It turns out this actually means Productions … very confusing at first until I got going ..
December 1, 2019
Also check out the extensions, works with a lot of ticketing systems
December 20, 2018
This plugin has been running for three years without any significant problems. The lists, which can be varied in many ways by shortcode, fascinate! Also the unexpected but helpful support from Jeroen, during a failed installation of an extension, pleased me very much.
June 27, 2017
I have been searching for something like this for so long! Events Manager wasn’t cutting it, Events Calendar by Modern Tribe is glitchy, Theater for WP does it just right! My only complaint would be the documentation, my developer had to figure out a lot on his own. But the support was great when we needed it.
November 15, 2016
Great plugin for a theatre client of mine. I added a free extension (duplicator) and premium one (grid). The author was extremely responsive to support requests for the premium extension and I cannot fault him or the product. Superb.
Read all 24 reviews

Contributors & Developers

“Theater for WordPress” is open source software. The following people have contributed to this plugin.


“Theater for WordPress” has been translated into 7 locales. Thank you to the translators for their contributions.

Translate “Theater for WordPress” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



Release Date: September 1, 2020

  • Enhancements
    • Adds Gutenberg/Block Editor support to events and a new ‘Import Events’ page.
  • Bugfix
    • Fixes a PHP warning (0.18.2).
    • Fixes an XSS vulnerability (0.18.4).
    • Fixes a PHP error when manually inserting an Event through wp_insert_post() (0.18.5).
  • Deprecations
    • Removed the Cart widget because nobody was using it (0.18.2).


Release Date: August 17, 2020

Introducing Jeero as a new way to import events from popular ticketing solutions.


Release Date: July 25, 2018

  • Enhancements
    • Added date and category filter to the events admin screen.
    • Added a custom excerpt to embedded events (using oEmbed).
    • Made it possible to paginate events by tag. See the updated docs.
    • Made it possible to group events by tag. See the updated docs.
  • Bugfix
    • Fixed a performance issue if your site uses a lot of transients (0.16.1).
    • Fixed a timezone issue with groupby/paginateby inside listings (0.16.1).
    • Fixed a problem with jQuery in WordPress 5.5 (0.16.2).
    • Fixed a problem with the tickets url inside an iframe on subfolder based multisite installs (0.16.2).
    • Fixed another problem with jQuery in WordPress 5.5 (0.16.3). Now uses flatpickr for a datepicker.


Release Date: March 22nd, 2016

This release focusses on a more streamlined experience when managing your events. Let me know what you think and if you are missing anything in the forum.

  • Enhancements

    • Renamed ‘productions’ to ‘events’.
    • Simplified the events admin screen.
    • Added a new {{prices}} placeholder for events (0.15.3).
    • Events can now be filtered by tags (0.15.5).
    • Activated events archive pages (0.15.10).
    • You can now set until what time events should fall on the previous days using the theater/helpers/time/next_day_start_time_offset filter (0.15.11).
    • You can now create event calendars with custom filters (0.15.16).
    • Added the ‘end_after’ filter to production lists.
    • You can now add extra filter controls to the events admin screen using the restrict_manage_productions and manage_productions_extra_tablenav filters (0.15.17).
    • Added the wpt/importer/get/value filter to alter the default behaviour of an importer (0.15.20).
    • The calendar widget now jumps to the active month if you show the widget on you events page (0.15.23).
    • The use of transients for event lists and calendar can now be switched off using the theater/transient/active filter (0.15.24). Thank you joost de keijzer!
    • Added a new {{tags}} placeholder for events (0.15.27). See the updated docs. Thank you Raymond van Melzen!
    • Internal changes to further improve performance of importers (0.15.27).
    • Added CSS classes to the event editor to make it easier for developer to customise (0.15.29). Thank you joost de keijzer!
    • Performance improvements when ordering events on websites with a lot of events (0.15.30).
  • Bugfix

    • The translation setting for the header above events on the productions page was also being used in other places (eg. the admin menu) (0.15.2). Thank you Bob Morris!
    • Seasons are now hidden from search results (0.15.3).
    • The post slug was not working for events when using bulk edit in the events admin screen (0.15.5).
    • Updates for extension plugins were not working anymore (0.15.6).
    • Events where not always showing the correct end date.
    • Search results no longer get lost when navigating on the Events page in the WordPress admin (0.15.9).
    • Fixed an issue with the ‘end’ filter for events (0.15.10).
    • Fixed the sort order of events on the admin screen after you changed the status of an event (0.15.13). Thank you Menno Luitjes!
    • Fixed a problem with the changelog of extensions if you’re running multiple extensions (0.15.14).
    • Fixed a problem with the event editor in WordPress 4.7 (0.15.15).
    • Fixed the day-filter in event lists (0.15.16).
    • Fixed an encoding problem in the upcoming event feeds (0.15.16).
    • Fixed a sorting issue on archive/search pages with mixed post types (0.15.16).
    • Fixed a timezone problem when using something like starttime|date('Y-m-d H:i:s') inside a shortcode (0.15.18).
    • Fixed performance issues with some websites that use full page caching plugins and services (0.15.22).
    • Fixed several performance issues of during imports (0.15.24).
    • Fixed a conflict with WP-CLI. (0.15.24).
    • Fixed an issue with the fallback of custom field values of events. Thank you joost de keijzer!
    • Fixed an issue where sometimes events are shown in the wrong order (0.15.30).
    • Fixed another issue where sometimes events are shown in the wrong order (0.15.31).
    • Fixed an issue with the keyword filter for events (0.15.32).
    • Fixed an issue with event lists on a page with a parent page (0.15.33).
    • Fixed an issue with the tickets iframe when the tickets page is a page with a parent page (0.15.33).
    • Fixed an issue where events are gone after you deactivate en reactivate the plugin.
  • Deprecations

    • Deprecated the custom CSS settings in favour of the custom CSS setting that came with WordPress 4.7 (0.15.16).


Release Date: February 2nd, 2016

  • Enhancements

    • The plugin is now ready for language packs hosted on This makes it much easier for you to contribute a translation of the plugin in your native language. Add you translation here.
    • The [wpt_events] shortcode now accepts a production parameter to limit the a events list to one or more productions (0.14.4). See the updated documentation for examples.
  • Bugfixes

    • Fixed some layout glitches on the Theater extensions page (0.14.1).
    • Listings were not working correctly if you combined the start and post__not_in params (0.14.2).
    • Event imports didn’t always clean up properly (0.14.2).
    • Fixed a problem when saving a production with multiple events (0.14.3). Thank you tomaszkoziara!
    • Fixed several PHP warnings when no listing page is set in the Theater settings (0.14.3).


Release Date: September 3rd, 2015

  • Enhancements
    • Production listings can now be filtered by start and end dates. See the updated documentation.
    • Production listings can now be grouped and paginated by day, month or year.
    • Stripped all unnecessary elements off the event edit screen.
    • Made it possible to alter the behaviour of the tickets lightbox with a filter.
    • You can now browse extensions inside the WordPress admin.

See the release post for examples.

  • Bugfixes

    • Fixed a problem in production listings with events that start before 1-1-1970.
    • Visibility of ticket buttons didn’t account for timezones.
    • Pagination for listings wasn’t working when the listing page was the same as the front page.
    • Weekdays were showing up as question marks when using a multibyte language (eg. Russian).
  • Requirements

    • The plugin is no longer tested on WordPress versions prior to 4.0 (0.13.3).


Release Date: July 3rd, 2015

  • Enhancements

    • You can adjust the slug for production detail pages in the permalink settings. Your URLs can now look like or
    • New template placeholders for events: {{starttime}}, {{startdate}}, {{endtime}} and {{enddate}}. Thanks jbrandligt!
    • You can choose the size for your thumbnail placeholder: {{thumbnail('large')}}.
    • The URLs for your ticket pages look nicer, if you use the iframe option:
    • Added new filters to manipulate the output of the Theater Production widget and the Theater Events widget.
    • Updated the German translation. Thanks henk23!
    • Added error messages to the import status. Thanks Menno!
    • Made it easier for extensions to add functionality to the event editor (0.12.4).
  • Clean up

    • Productions no longer have an archive page on
    • Removed the Theater dashboard widget since it was kind off useless and slowing the admin interface down.
  • Bugfixes

    • Some past events were showing a false tickets status.
    • It was impossible to clear a value for an event field.
    • Events were polluting the ‘link to existing content’ section on the ‘Insert/edit link’ dialog (0.12.3).
    • Fixed a timezone problem with the {{datetime}} template tag (0.12.6).
    • Fixed a lightbox problem with themes that don’t properly support screen-reader texts (0.12.6).
    • Fixed a problem with invalid event end dates (0.12.7).
    • The tickets status was not being saved when creating a new event (0.12.7).


Release Date: May 30th, 2015

  • Enhancements
    • A brand new event editor. See the release notes for all the info.
    • Support for post__in and post__not_in in the [wpt_events] shortcode. See the documentation for examples. Thanks jbrandligt!
    • Support for custom filters in event listings. See this post for an example.