Radio Station by Netmix® is a WordPress plugin to build and manage a Show Schedule for a radio station or internet broadcaster’s WordPress website, including podcasters. It’s functionality is based on Drupal 6’s Station plugin, reworked for use in WordPress.

This is done by adding a new “Show” post type, schedulable blocks of time that contain a Show description, a Show shifts repeater field, assignable images and other meta information. You can also create Playlists associated with those shows, or assign standard blog posts to relate to a Show. It also supports adding Schedule Overrides for specific dates and times. The plugin has the ability to associate users (given a role of “Host” or “Producer”) to Shows, so they can be displayed for that Show and to give them edit access.

Latest Version is (released August 27, 2021)

Full live examples are available on the
Radio Station Plugin Demo Site

Download via WordPress.Org

WordPress.Org Plugin Home

Pro Upgrade is here!

Upgrade to Radio Station Pro

  1. Upload plugin .zip file to the /wp-content/plugins/ directory and unzip.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Alternatively search for Radio Station via the WordPress admin Add New plugin interface and install and activate it there.
  4. Give any users who need access to the plugin the role of “Host”, “Producer” or “Show Editor”. Assigning These roles gives publish and edit access to the plugin’s records.
  5. Create Shows, add Shifts to them, and assign Images, Genres, Languages, Hosts and/or Producers.
  6. Add Playlists to your Shows or assign posts to Shows as needed.
  7. Go to your admin Appearance -> Widgets page to add and configure Current and Upcoming Show Widgets, and any other desired plugin widgets.
  8. See the QuickStart Guide for more detailed instructions of what else is available.

Once you have installed and activated the Radio Station Plugin on your WordPress site, your WordPress Admin area will now have a new menu item titled Radio Station with submenu page items. If you are trying to do something specific, you can check out the FAQ for Frequently Asked Questions as you may find the answer there.

Firstly, you can visit the Plugin Settings screen to adjust the default Options to your liking. Here you can set your Radio Timezone and Streaming URL (if you have one) along with other global plugin settings. Also from this Settings page you may want to assign Pages and Views for your Program Schedule display and other optional Post Type Archive displays.

Add a New Show and assign it a Shift timeslot and Publish. Then check out how it displays on a single Show page by clicking the Show Permalink. Schedule Overrides work in a similar way but are for specific date and time blocks only. Depending on your Theme, you may wish to adjust the Templates used. You can also assign different Images to Shows (and Schedule Overrides.) Then have a look at your Program Schedule page to see the Show displayed there also. Just keep adding Shows until you have your Schedule filled in! You can further Manage your Shows and other Station data via the WordPress Admin area.

Next you may want to give some users on your site some plugin Roles. (Note that while the default interface in WordPress allows you to assign a single role to a user, it also supports multiple roles, but you need to add a plugin to get an interface for this.) Giving a Role of Host/DJ or Producer to a user will allow them to be assigned to a Show on the Show Edit Page and thus edit that particular Show also. You can also assign the Show Editor role if you have someone needs to edit all plugin records without being a site Administrator.

There are a few Widgets you can add via your Appearance -> Widgets menu. The main one will display the currently playing Show, and another will display Upcoming Shows. There is also a Current Playlist Widget for if you have created and assigned a Playlist to a Show.

Then there are also a number of other Shortcodes you can use in your pages with different display options you can use in various places on your site also. There is the Master Schedule, Widget Shortcodes, and also Archive Shortcodes for each of the different data records.

Radio Station has several in-built Data types. These include Custom Post Types for Shows, Schedule Overrides and Playlists. There are Taxonomies for Genres and Languages. You can override most data values and display output via custom Data Filters throughout the plugin. We have also incorporated an API in the plugin via REST and/or WordPress Feeds, and this data is accessible in JSON format.

This plugin is under active development and we are continuously working to enhance the Free version available on WordPress.Org, as well as creating new feature additions for Radio Station Pro. Check out the Roadmap if you are interested in seeing what is coming up next!

Frequently Asked Questions

How do I get started with Radio Station?

Read the Quickstart Guide for an introduction to the plugin, what features are available and how to set them up.

Where can I find the full plugin documentation?

The latest documentation can be found online at Documentation is also included with for the currently installed version via the Radio Station Help menu. You can find the Markdown-formatted files in the /docs folder of the GitHub Repository and in the /docs folder of the plugin directory.

How do I schedule a Show?

Simply create a new show via Add Show in the Radio Station plugin menu in the Admin area. You will be able to assign Shift timeslots to it on the Show edit page, as well as add the Show description and other meta fields, including Show images.

How do I display a full schedule of my Station's shows?

In the Plugin Settings, you can select a Page on which to automatically display the schedule as well as which View to display (a Table grid by default.) Alternatively, you can use the shortcode [master-schedule] on any page (or post.) This option allows you to use further shortcode attributes to control the what is displayed in the Schedule (see Master Schedule Shortcode Docs )

I've scheduled all my Shows, but some are not showing up on the program schedule?

Did you remember to check the "Active" checkbox for each Show? If a Show is not marked active, the plugin assumes that it's not currently in production and it is not shown on the Schedule. A Show will also not be shown if it has a Draft status or has no active Shifts assigned to it.

What if I want to schedule a special event or one-off schedule change?

If you have a one-off event that you need to show up in the Schedule and Widgets, you can create a Schedule Override by clicking Schedule Override in the Radio Station admin menu. This will allow you to set aside a block of time on a specific date, and when the Schedule or Widget is displaying that date, the override will be used instead of the normally scheduled Show. (Note that Schedule Overrides will not display in the old Legacy Table/Div Views of the Master Schedule.)

I'm seeing 404 Not Found errors when I click on the link for a Show!

Try re-saving your site's permalink settings via Settings -> Permalinks. Wordpress sometimes gets confused with a new custom post type is added. Permalink rewrites are automatically flushed on plugin activation, so you can also just deactivate and reactivate the plugin.

What if I want to change or style the plugin's displays?

The default styles for Radio Station have intionally kept fairly minimal so as to be compatible with most themes, so you may wish to add your own styles to suit your site's look and feel. The best way to do this is to add your own rs-custom.css to your Child Theme's directory, and add more specific style rules that modify or override the existing styles. Radio Station will automatically detect the presence of this file and enqueue it. You can find the base styles in the /css/ directory of the plugin.

What Widgets are available with this plugin?

The following Widgets are available to add via the WordPress Appearance -> Widgets page: Current Show, Upcoming Shows, Current Playlist, Radio Clock and Streaming Player Widgets. See the Widget Documentation for more details on these Widgets.

Do the Widgets reload automatically?

Current Show, Upcoming Shows and Current Playlist widgets do not refresh automatically in this free version. This capability has been added as a new feature to the Pro version however - so that the widgets refresh exactly at Show changeover times.

What Shortcodes are available with this plugin?

See the Shortcode Documentation for more details and a full list of possible Attributes for these Shortcodes:

  • [master-schedule] - Master Program Schedule Display
  • [current-show] - Current Show Widget
  • [upcoming-shows] - Upcoming Shows Widget
  • [current-playlist] - Current Playlist Widget
  • [shows-archive] - Archive List of Shows
  • [genres-archive] - Archive List of Shows sorted by Genre
  • [languages-archive] - Archive List of Shows sorted by Language
  • [overrides-archive] - Archive List of Schedule overrides
  • [playlists-archive] - Archive List of Show Playlists

Note old shortcode aliases will still work in current and future versions to prevent breakage.

I need users other than just the Administrator and DJ roles to have access to the Shows and Playlists post types. How do I do that?

There are a number of different options depending on what you are wanting to to do. To address this situation, we have added a Show Editor role that can edit Shows without being an Administrator. You can find more information on roles in the Roles Documentation

How do I change the Show Avatar displayed in the sidebar widget?

The avatar is whatever image is assigned as the Show's Avatar. All you have to do is set a new Show Avatar on the Edit page for that Show.

Why don't any users show up in the Hosts or Producers list on the Show edit page? =

You need to assign the Host or Producer role to the users you want, so that you can select these users on the Show edit page. You can assign roles by editing the User via the WordPress admin. The Pro version has an additional Role Editor interface where you can assign the plugin roles to any number of users at once.

My Show Hosts and Producers can't edit a Show page. What do I do?

The only Hosts and Producers that can edit a show are the ones listed as being Hosts or Producers for that Show in the respective user selection menus. This is to prevent Hosts/Producers from editing other Host/Producer's Shows without permission.

I don't want to use Gravatar for my Host/Producer's image on their profile page.

Then you'll need to install a plugin that lets you add a different image to your Host/Producer's user account. As there are a number of plugins that do just this, it's a little out of the scope of this plugin. However, in the Pro version you can create separate profile pages to showcase each of your Hosts and Producers, and assign profile images to these profile pages.

What languages other than English is the plugin available in?

Right now:

  • Albanian (sq_AL)
  • Dutch (nl_NL)
  • French (fr_FR)
  • German (de_DE)
  • Italian (it_IT)
  • Russian (ru_RU)
  • Serbian (sr_RS)
  • Spanish (es_ES)
  • Catalan (ca)

Can the plugin be translated into my language?

You may translate the plugin into another language. Please visit our WordPress Translate project page for this plugin for further instruction. The radio-station.pot file is located in the /languages directory of the plugin. Please send the finished translation to We'd love to include it.

Can I use this plugin for Podcasts?

While the plugin is not specifically geared toward Podcasting, which is not live programming, some podcaster's have used Radio Station to let their subscribers know when they publish new shows.

Can I use this plugin for TwitchTV, Facebook Live, or Clubhouse shows?

Sure, there's no reason why you couldn't use the plugin to display a show schedule on a WordPress site for those services. Unfortunately, we are not currently syncing events from these platforms, but may do so in the future. While there may be APIs available from the larger services, Clubhouse does not yet have a public API, so scheduled rooms can't be automated to the Radio Station show scheduling system.

I use Google Calendar to print a show schedule online. Can I import/sync my Google Calendar with Radio Station?

We haven't built an interface between Google Calendar and Radio Station just yet, but it's on our radar to do so in the foreseeable future.

How do I install the latest Development version for testing?

If you are having issues with the plugin, we may recommend you install the development version for further bugix testing, as it may contain fixes that are not yet released into the next stable WordPress version. It is recommended you do this on a staging site. Instructions:

  1. Download the develop branch zip from the Github repository at:
  2. Unzip the downloaded file on your computer and upload it via FTP to the subdirectory of your WordPress install on your web server: /wp-content/plugins/radio-station-dev/
  3. Rename the subdirectory /wp-content/plugins/radio-station/ to /wp-content/plugins/radio-station-old
  4. Rename the subdirectory /wp-content/plugins/radio-station-dev/ to /wp-content/plugins/radio-station/

You can now visit your site to make sure nothing is broken. If you experience issues you can reverse the folder renaming process to activate the old copy of the plugin. If the new development version works fine, at your convenience you can delete the /wp-content/plugins/radio-station-old/ directory.


Current Major Release Version: 2.3.3

Upcoming Major Release Version: 2.3.4

For minor release notes, see the Changelog

Normal = Feature Completed

italics = Upcoming Feature

bold = Next Major Feature(s)

| Free | Version | Pro | Version | | --- | --- | --- | --- | | Scheduler with Conflict Checker | 2.3.0 | with Visual Schedule Editor | 2.3.5 | | Master Schedule Views | 2.2.8 | with Grid View and View Switching | 2.3.4 | | Show Page Display Template | 2.3.0 | with Social Icons | 2.3.5 | | Show Genre Assignments | 2.2.8 | with Genre Term Image Support | 2.3.0 | | Host / Producer / Show Editor Roles | 2.3.0 | with Role Assignment Interface | 2.3.0 | | Streaming Widget Player | 2.3.4 | with Sitewide Persistant Player | 2.3.3 | | Current and Upcoming Show Widgets | 2.2.8 | - | - | | Show Countdown Timer | 2.3.0 | with Dynamic Reloading | 2.3.4 | | Playlist Widget | 2.2.8 | with Track Affiliate Links | 2.3.5 | | Show Posts and Playlists | 2.2.8 | with Show Episodes Post Type | 2.3.4 | | Post Type Archive Shortcodes | 2.3.0 | with Grid View | 2.3.4 | | Show Hosts and Producers | 2.2.8 | with Guests and Profile Page Templates | 2.3.4 | | REST/Feed API Endpoints | 2.3.0 | with Episodes, Hosts and Producers | 2.3.4 | | Radio Clock and Widget | 2.3.2 | with Timezone Switcher | 2.3.4 | | Schedule Caching | 2.3.0 | with Show Meta Caching | 2.3.0 | | Standard HTML Markup | 2.3.0 | with Schema.Org Markup | 2.3.4 | Interested in "going pro"? Find out more about Radio Station Pro.

Support and Contributing

If you are wanting to Submit a Bug or Feature Request, you can do so via the WordPress.Org Plugin Support Forum, but we would prefer you submit a more detailed issue via GitHub Issues where we track and prioritize these using GitHub Projects.

Similarly, you can Contribute directly to the plugin via submitting an Issue or Pull Request on the Github Plugin Repository. Or if you would prefer to get involved in the plugin’s development even more substantially, please Contact Us via Email and let us know what you would like to do.


All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

  • Update: Sysend (1.11.1) for Radio Player
  • Fixed: missing register REST routes permission_callback argument
  • Fixed: added property_exists checks for PHP8 TypeErrors

  • Update: Plugin Panel (1.2.2)
  • Added: filter plugin icon for Freemius activation screen
  • Updated: clear plugin updates transient on activation/deactivation
  • Fixed: filter plugin updates to prevent Pro ever overwriting Free
  • Changed: plugin options array moved to a separate file

  • Fix: remove debug output breaking redirects/data endpoints
  • Updated: main language translation file
  • Added: list of Pro filters to documentation

  • Update: Freemius SDK (2.4.3)
  • Updated: documentation links to new demo site address
  • Fixed: remove duplicate Related Show box in Post Quick Edit
  • Fixed: multiple attributes for automatic pages shortcodes
  • Fixed: hide inactive tab shortcode section on tab click
  • Fixed: undefined warning for debugshifts
  • Fixed: current show in schedule when on exact start second
  • Added: filters for time and date separators
  • Added: description/excerpt to single show data endpoint

  • Fixed: plugin conflicts causing fatal errors

  • Improved: clear cache on show/override status transitions
  • Fixed: DJ / Host can edit own/others Show permissions
  • Fixed: Override link to show dropdown query
  • Fixed: Fallback scripts and fallback stream URLs
  • Fixed: Radio Clock responsive width display
  • Fixed: Collapse descriptions for non-show pages
  • Fixed: Deduplicate dates in week (daylight saving fix)

  • Update: Plugin Panel (1.2.1) with zero value save and tab fixes
  • Added: option to disable player audio fallback scripts
  • Added: option to hide various volume controls
  • Improved: lazy load player audio fallback scripts
  • Improved: added author support to post types for quick edit
  • Refix: missing fix to active day tab on pageload
  • Fixed: player volume slider background position (cross-browser)
  • Fixed: missing title value for adjacent post links
  • Fixed: Fallback scripts and fallback stream URLs

  • Fixed: Multiple Player instance IDs
  • Fixed: Player loading button glow animation
  • Added: Enabled Pro Pricing plans page
  • Added: Widget type specific classes
  • Added: Alternative text positions in Player
  • Added: Pause button graphics to Player

  • Fixed: Rounded player play button background corner style
  • Fixed: Tabbed schedule active day tab on pageload
  • Improved: Radio Clock Widget layout


  • Added: Radio Stream Player!
  • Fixed: Shows archive shortcode with no Shows selected

  • Update: Plugin Panel (1.1.8) with Number Step Min/Max fix
  • Update: Freemius SDK (2.4.2)
  • Improved: Allow for Multiple Override Times (with AJAX Saving)
  • Improved: Markdown Extra Compatibility for PHP 7.4+
  • Added: Link Override to Show Data with selectable Show Fields
  • Added: Language Archive Shortcode (similar to Genre Archive)
  • Added: Display Linked Override Date List on Show Pages
  • Added: Automatic user showtime conversion and display
  • Fixed: Show Schedule sometimes starting on previous week
  • Fixed: Current Show highlighting timer interval cycling
  • Fixed: Before and After Show classes when no current Show
  • Fixed: Shows Data Endpoint 24 Hour Shift Format and Encore Switch
  • Fixed: Multiple host separator display in Current Show Widget
  • Fixed: Playlist Widget playlist ended label when no next playlist
  • Fixed: Conflicting duplicate filter name for Show Avatar
  • Fixed: Time conversions where start/finish Show/Override is equal
  • Fixed: Show page subarchive lists pagination button arrow display
  • Fixed: Show Shifts with same start time overwriting bug

  • Update: Plugin Panel (1.1.7) with Image and Color Picker fields & Documentation: Full Plugin Filter List added to docs/
  • Added: Stream Format and Fallback/Format selection setting
  • Added: Station Image and Station Title for future Player Display
  • Added: Station Email Address setting with default display option
  • Added: Section order filtering for Master Schedule Views
  • Added: Section display filtering for Master Schedule Views
  • Added: Section display filtering for Widget sections
  • Added: Show image alignment attribute to Schedule Tabs View
  • Added: Show Description/Excerpt to Show Data Endpoint (via querystring)
  • Added: Reduced opacity for past Shows on Schedule Tab/Table Views
  • Added: Screen Reader text for Show icons on Show Page
  • Fixed: Display Widget Countdown when no Current Show/Playlist
  • Fixed: Check for explicit singular.php template usage setting
  • Fixed: Access to Shows Data via querystring of Show ID/name
  • Fixed: Shows Data for Genres/Languages querystring of ID/name
  • Fixed: Override Display order output for Tab/List Views

  • Fixed: Schedule Overrides overlapping multiple Show shifts
  • Fixed: Bulk Edit field repetition and possible jQuery conflict
  • Fixed: Related Posts check producing error output
  • Fixed: WordPress Readme Parser deprecated errors for PHP7

  • Update: Freemius SDK (2.4.1)
  • Update: Plugin Loader (1.1.6) with phone number and CSV validation
  • Added: Station phone number setting with default display option
  • Added: Schedule classes for Shows before and after current Show
  • Improved: current Show highlighting on Schedule for overnight shifts
  • Improved: info section reordering filters on single Show template
  • Fixed: Edit permissions checks for Related to Show post assignments
  • Fixed: Main Language option value for WordPress Setting
  • Fixed: make Date on Tab clickable on Tabbed Schedule View
  • Fixed: prevent possible conflicts with changes not saved reload message
  • Fixed: do not conflict check Shift against itself for last shift check
  • Fixed: link back to Show posts for related Show posts (allow multiple)
  • Fixed: filter next/previous post link for (multiple) related Show posts
  • Fixed: automatic pages conflict where themes filter the_content early

  • Fixed: use schedule based on start_day if specified for Schedule view
  • Fixed: day left/right shifting on Schedule table/tab mobile views
  • Added: past/today/future filter for Schedule Override List
  • Added: filter for Schedule display start day (and to accept today)
  • Added: current playlist (if any) to Broadcast Data endpoint

  • Improved: auto-match show description to info height on Show pages
  • Improved: allow multiple Related Show selection for single post
  • Improved: ability to assign Post to relate to multiple Shows
  • Added: Related Show Post List column and Quick Edit field
  • Added: Related Show selection Bulk Edit Action for Post List
  • Added: filters for label texts and title attributes on Show Page
  • Added: filter for label text above Show Player (default empty)

  • Fixed: improved Current Show and Upcoming Shows calculations
  • (Display showtimes when show starts before and ends after midnight)

  • Update: Freemius SDK (2.4.0)
  • Update: Plugin Loader (1.1.4) with weird isset glitch fix
  • Fixed: Current Show for Shows ending at midnight
  • Fixed: incorrect AJAX Widget plugin setting value
  • Fixed: use pageload data for schedules before transients


  • Update: Plugin Loader (1.1.3) with non-strict select match fix
  • Improved: width responsiveness for table/tabbed Schedule views
  • Improved: show shifts interface background colors
  • Added: navigate away from page on shift change check
  • Added: default time format option to Widgets
  • Removed: current show transients (intermittant unreliability)
  • Fixed: AJAX call causing plugin conflicts via save_post action
  • Fixed: calculation of Upcoming Shows near end of the week
  • Fixed: remove and duplicate actions on new shifts


  • Update: Plugin Loader (1.1.2) with settings link fix
  • Improved: use plugin timezone setting for all times
  • Improved: show shift conflict checker logic
  • Added: Radio Clock Widget for user/server time display
  • Added: AJAX widget load option (to bypass page caches)
  • Added: automated show schedule highlighting (table/tabs/list)
  • Added: playlist track arrows for re-ordering tracks
  • Added: AJAX save of show shifts and playlist tracks
  • Added: post type editing metabox position filtering
  • Added: more display attributes to Master Schedule shortcode
  • Added: time format filters for time output displays
  • Added: javascript user timezone display on Master Schedule
  • Fixed: handling of UTC only timezone settings
  • Fixed: added check for empty role capabilities
  • Fixed: added settings submenu redirection fix
  • Fixed: show and override midnight end conflict
  • Fixed: calculate next shows at end of schedule week
  • Fixed: metaboxes disappearing on position sorting
  • Fixed: move tracks marked New to end of Playlist on update
  • Fixed: override shift array output showing above schedule
  • Fixed: master schedule specify days attribute bug
  • Fixed: display real end time of overnight split shifts
  • Fixed: master schedule display with days attribute
  • Fixed: logic for Affected Shifts in override list
  • Fixed: removed auto-tab selection change on tab view resize
  • Fixed: Current Show widget schedule/countdown for Overrides
  • Fixed: multiple overrides in schedule range variable conflict


  • Update: Plugin Loader (1.1.1) with Freemius first path fix
  • Fixed: conditions for Schedule Override time calculations
  • Fixed: schedule table view - 12 hour format with translations
  • Fixed: schedule table view hour column width style
  • Fixed: javascript table/tab arrows to prevent default click
  • Fixed: undefined index warning when saving show with no shifts
  • Fixed: append not echo override date to shortcode archive list
  • Fixed: compatibility with multiple the_content calls (Yoast)
  • Fixed: reset to showcontinued flag in Schedule (table view)
  • Added: option to clear transients on every pageload
  • Added: show avatar and featured image URLs to Data API output
  • Added: option to ping Netmix directory on show updates
  • Added: filters for widget section display order


  • Include: Plugin Loader (1.1.0) with plugin options and settings
  • Include: Freemius SDK (2.3.0) and Freemius integration
  • Feature: assign new Producer role to a Show for Show displays
  • Feature: internal Schedule Show Shift Conflict checking
  • Feature: Show Shift saving completeness and conflict checking
  • Feature: added Data Endpoints API via WordPress REST and Feeds
  • Feature: options to set Page and default View for Master Schedule
  • Feature: post type Archive Shortcodes and Show-related Shortcodes
  • Feature: display Radio Timezone on Master Schedule table view
  • Feature: added Show Header image to Shows for single Show display
  • Feature: added Show Language Taxonomy to Shows (and Overrides)
  • Feature: added Countdown clock for Show and Playlists Widgets
  • Improved: new Data Model and Schedule (with Override) Calculation
  • Improved: new Show Content Template layout display method
  • Improved: new Playlist Content Template layout display method
  • Improved: added multiple Genre highlight selection on Master Schedule
  • Improved: added Custom Field and Revision support to post types
  • Improved: missing output sanitization throughout the plugin
  • Improved: added file hierarchy fallbacks for CSS, JS and Templates
  • Improved: enqueue conditional scripts inline instead of echoing
  • Improved: Master Schedule displays enhancements and styling
  • Improved: add Responsiveness to Master Schedule Table and Tab View
  • Improved: add View/Edit links for editing custom post types
  • Improved: load Datepicker styles locally instead of via Google
  • Improved: add debug function for debug display and logging
  • Improved: add links from Show Posts back to Show Page
  • Improved: added Duplicate Shift button to Show Shift Editing
  • Roles: new Show Producer role (same capabilities as DJ / Host)
  • Roles: new Show Editor role (edit permissions but not Admin)
  • Roles: Changed DJ role Label to DJ / Host (for talk show usage)
  • Admin: Added Plugin Settings Admin Page (via Plugin Loader)
  • Admin: Added plugin Upgrade / Updated details admin notices
  • Admin: Schedule conflict notice and Show conflicts in Shift column
  • Admin: Show/Override content indicator columns to Admin Show list
  • Admin: Show Description helper text metabox on Show edit screen
  • Admin: Fix to restore Admin Bar New/Edit links for plugin post types
  • Admin: Store installed version for future updates and announcements
  • Disabled: automatic loading of old templates (non theme agnostic)


  • Fix to remove strict type checking from in_array (introduced 2.2.6)
  • Fix to mismatched flush rewrite rules flag function name
  • Fix to undefined index warnings for new Schedule Overrides
  • Fix to not 404 author pages for DJs without blog posts
  • Fix to implode blog array for Show blog post listing


  • Dutch translation added (Thank you to André Dortmont for the file!)
  • Added Tabbed Display for Master Schedule Shortcode (via Tutorial)
  • Add Show list columns with active, shift, DJs and show image displays
  • Add Schedule Override list columns with date sorting and filtering
  • Add playlist track information labels to Now Playing Widget
  • Added meridiem (am/pm) translations via WP Locale class
  • Added star rating link to plugin announcement box
  • Added update subscription form to plugin Help page
  • Fix to checkbox value saving for On Air/Upcoming Widgets
  • Fix 12 hour show time display in Upcoming Widget
  • Fix PM 12 hour shot time display in On Air Widget
  • Fix to schedule override date picker value visibility
  • Fix to weekday and month translations to use WP Locale
  • Fix to checkbox value saving in Upcoming Widget
  • Split Plugin Admin Functions into separate file
  • Split Post Type Admin Functions into separate include
  • Revert anonymous function use in widget registrations


  • Reorganize master-list shortcode into templates
  • Add constant for plugin directory
  • Use WP_Query instead of get_posts
  • New posts_per_page and tax_query
  • Fixes for undefined indexes
  • Fixes for raw mysql queries
  • Typecasting to support strict comparisons


  • WordPress coding standards and best practices (thanks to Mike Garrett @mikengarrett)


  • added title position and avatar width options to widgets
  • added missing DJ author links as new option to widgets
  • cleanup, improve and fix enqueued Widget CSS (on air/upcoming)
  • improved to show Encore Presentation in show widget displays
  • fix to Show shift Encore Presentation checkbox saving


  • added flush rewrite rules on plugin activation/deactivation
  • added show_admin_column and show_in_quick_edit for Genres
  • added show metadata and schedule value sanitization
  • fix to 00 minute validation for Schedule Override
  • convert span tags to div tags in Widgets to fix line breaks


  • shift main playlist and show metaboxes above editor
  • set plugin custom post types editor to Classic Editor
  • add high priority to side metaboxes for plugin post types
  • added dismissable development changeover admin notice
  • added simple Patreon supporter image button and blurb
  • added filter for DJ Avatar size on Author page template
  • fix to Schedule Override metabox value saving
  • fix to Playlist track list items overflowing metabox
  • fix to shift up time row on Master Schedule table view
  • fix to missing weekday headings in Master Schedule table
  • fix to weekday display for Upcoming DJ Widget
  • fix to user display labels on select DJ metabox
  • fix to file_exists check for DJ on Air stylesheet path
  • fix to make DJ multi-select input full metabox width
  • fix to expand admin menu when on genre taxonomy page
  • fix to expand admin menu when editing plugin post types
  • fix to genre submenu item link for current page
  • added GitHub URI to plugin header for GitHub updater


  • Re-commit all missing files via SVN


  • WordPress coding standards refactoring for WP 5 (thanks to Tony Hayes @majick777)
  • fixed the protocol in jQuery UI style Google URL
  • reprefixed all functions for consistency (radio_station_)
  • updated all the widget constructor methods
  • merged the menu items into a single main menu
  • updated the capability checks for the menu items
  • moved the help and export pages to /templates/
  • moved all the css files to /css/
  • enqeued the djonair css from within the widget
  • use plugins_url for all resource URLs
  • added $wpdb->prepare to sanitize a query
  • added some sanization for metabox save values
  • added a week and month translation helper
  • added a radio station antenna icon


  • Added method for displaying schedule for only a single day (see readme section for the master-schedule shortcode for details).


  • Compatibility fix for Wordpress 4.3.x - Updated the widgets to use PHP5 constructors instead of the deprecated PHP4 constructors.
  • Catalan translation added (Thank you to Victor Riera for the file!)


  • Bug fix - Fixed day of the week language translation issue in master schedule shortcode
  • Bug fix - Added some error checking in the sidebar widgets
  • New Feature - Added ability to give schedule overrides a featured image
  • New Feature - Added built-in help page


  • General code cleanup, 4.1 compatibility testing, and changes for better efficiency.
  • Bug fix - Fixed issue with early morning shows spanning entire column in the programming grid shortcode
  • New Feature - Master programming grid can now be displayed in div format, as well as the original table and list formats.


  • Minor revisions to German translation.
  • Fixed a bug that was resetting custom-sert role capabilities for the DJ role.


  • German translation added (Thank you to Ian Hook for the file!)


  • Fixed issue on the master schedule where genres containing more than one work wouldn't highlight when clicked
  • Added ability to display DJ names on the master schedule.
  • Fixed bug in the Upcoming widget. Override Schedule no longer display as upcoming when they are on-air.
  • Verified compatibility woth WordPress 4.0


  • Added the ability to display show avatars on the program grid.
  • Added the ability to display show description in the now on-air widget and short code.


  • Fixed a bug in the master schedule shortcode


  • Russian translation added (Thank you to Alexander Esin for the file!)


  • Fixed role/capability conflict with WP User Avatar plugin.
  • Added the missing leading zero to 24-hour time format on the master schedule.
  • Fixed dj_get_current function so that it no longer returns shows that have been moved to the trash.
  • Fixed dj_get_next function so that it no longer ignores the "Active" checkbox on a show.
  • Added some CSS ids and classes to the master program schedule list format to make it more useful


  • Fixed broken upcoming show shortcode.
  • Added ability to display DJ names along with the show title in the widgets.


  • Fixed the display of schedules for upcoming shows in the widget and shortcode.
  • Fixed a bug in the dj_get_next function that was causing it to ignore the beginning of the next week at the end of the current week.


  • Fixed scheduling bug in shortcode function


  • Master Schedule now displays days starting with the start_of_week option set in the WordPress General Settings panel.
  • Fixed issue with shows that have been unplublished still showing up on the master schedule.
  • Fixed missing am/pm text on shows that run overnight on the master schedule.
  • Fixed an issue with shows that run overnight not spanning the correct number of hours on the second day on the master schedule.
  • Fixed problem in Upcoming DJ Widget that wasn't displaying the correct upcoming shift.


  • Fixed an issue with some shows displaying in 24 hour time on master schedule grid even though 12-hour time is specified
  • Fixed a bug in the On-Air widget that was preventing shows spanning two day from displaying
  • Added code to enable theme support for post-thumbnails on the "show" post-type so users don't have to add it to their theme's functions.php file anymore.


  • Master Schedule bug for shows that start at midnight and end before the hour is up fixed.


  • Compatibility fix: Fixed a jquery conflict in the backend that was occuring in certain themes


  • Bug fix: Scheduling issue with overnight shows fixed


  • Bug fix: Fixed PHP error in Playlist save function that was triggered during preview
  • Bug fix: Fixed PHP notice in playlist template file
  • Bug fix: Fixed PHP error in dj-widget shortcode


  • Major code reorganization for better future development
  • PHP warning fix
  • Enabled option to add comments on Shows and Playlists
  • Added option to show either single or multiple schedules in the On Air widget


  • Minor PHP warning fixes


  • Bug fix: Some of the code added in the previous update uses the array_replace() function that is only available in PHP 5.3+. Added a fallback for older PHP versions.


  • Added the ability to override the weekly schedule to allow one-off events to be scheduled
  • Added a list format option to the master schedule shortcode
  • Added Italian translation (it_IT) (thank you to Cristofaro Giuseppe!)


  • Fixed some PHP notices that were being generated when there were no playlist entries in the system.


  • Added Serbian translation (sr_RS) (thank you to Miodarag Zivkovic!)

  • Removed some debug code from one of the template files


  • Fixed some localization bugs.
  • Added Albanian translation (sq_AL) (thank you to Lorenc!)


  • Fixed some localization bugs.
  • Added French translation (fr_FR) (a big thank you to Dan over at BuddyPress France.


  • Plugin modified to allow for internationalization.
  • Spanish translation (es_ES) added.


  • Fixed a bug with shows that start at midnight not displaying in the on-air sidebar widget.
  • Switched DJ/Show avatars in the widgets to use the featured image of the show instead of gravatar.
  • Updated show template to get rid of a PHP warning that appeared if the show had no schedules.
  • Fixed some other areas of the code that were generating PHP notices in WordPress 3.6
  • Added CSS classes to master program schedule output so CSS rules can be applied to specific shows
  • Added new attribute to the list-shows shortcode to allow only specified genres to be displayed


  • Fixed master-schedule shortcode bug that was preventing display of 12 hour time


  • Compatibility fix for Wordpress 3.6 - fixed problem with giving alternative roles DJ capabilities
  • Fixed some areas of the code that were generating PHP notices in WordPress 3.6


  • Master schedule shortcode now displays indiviual shows in both 24 and 12 hour time
  • Fixed some areas of the code that were generating PHP notices in WordPress 3.6
  • Added example of how to display show schedule to single-show.php template
  • Added more options to the plugin's widgets
  • Added new options to the master-schedule shortcode


  • Fixed a bug in the CSS file override from theme directory


  • Fixed issue with templates copied to the theme directory not overriding the defaults correctly
  • Fixed incorrectly implemented wp_enqueue_styles()
  • Removed deprecated escape_attribute() function from the plugin widgets
  • Fixed some areas of the code that were generating PHP notices


  • Compatibility fix for WordPress 3.6


  • Fixed a bug that was preventing sites using a non-default table prefix from seeing the list of DJs on the add/edit show pages


  • Changes to fix the incorrect list of available shows on the Add Playlist page
  • Removing Add Show links from admin menu for DJs, since they don't have permission to use them anyway.


  • Fixed a scheduling bug in the upcoming shows widget
  • By popular request, switched the order of artist and song in the now playing widget


  • Fixed issue with shows that run overnight not showing up correctly in the sidebar widgets


  • Fixed a time display bug in the DJ On-Air sidebar widget
  • Fixed a display bug on the master schedule with overnight shows


  • By request, added as 24-hour time format option to the master schedule and sidebar widgets.


  • Added the ability to assign any user with the edit_shows capability as a DJ, to accomodate custom and edited roles.


  • Fixed a bug in the DJ-on-air widget


  • Fixed a major bug in the master schedule output


  • Fixed some minor compatibility issues with WordPress 3.5
  • Fixed Shows icon in Dashboard


  • Fixed thumbnail bug in sidebar widgets
  • Added new widget to display upcoming shows
  • Added pagination options for playlists and show blogs


  • Fixed playlist edit screen so that queued songs fall to the bottom of the list to maintain play order
  • Reduced the size of the content field in the playlist post type
  • Some minor formatting changes to default templates
  • Added genre highlighter to the master programming schedule page
  • Added a second Update button on the bottom of the playlist edit page for convinience.
  • Added sample template for DJ user pages
  • Fixed a bug in the master schedule shortcode that messed up the table for shows that are more than two hours in duration
  • Fixed a bug in the master schedule shortcode to accomodate shows that run from late night into the following morning.
  • Added new field to associate blog posts with shows


  • Initial release

Radio Station Features

Powerful Show Scheduling System

Schedule your weekly Show programme for display to your site visitors, with multiple Show Shift and date-specific Schedule Override support. A Responsive Grid Table view for your Schedule is available via the plugin settings or can be further customized using the schedule shortcode. Arrows allow access to other days of the week on narrower screens, giving both full and easy access to your schedule. Includes timezone display, 12 and 24 hour support. The currently playing show is highlighted and visitors can also highlight Shows by Genre selections.

Table Schedule View
Tabbed Schedule View

Show Schedule Tab View

You can also display your Show Schedule in a Tabbed list view for each day of the week. Previously, this was only available by implementing some custom coding. Now, we’ve baked this view option into the plugin settings and schedule shortcode. And like the table view, it’s also width responsive, making it easier to scroll and toggle the days of the week on a mobile or other small screen device. And again visitors can also highlight Shows by Genre selections.

New Show Page Layout

Since 2.3.0, we’ve created an entirely new Show Page layout complete with Featured Image, Show Avatar, Show Times, and Show Description with a clickable “more* feature that shows/hides long show descriptions to help prevent long scrolls. Show Blog Posts and Playlists are now available as pagination lists in tabs under the Show Description. Plus an embedded audio player for your latest Show broadcast and a new Patreon button to allow supporters to give to each Show.

Show Page Layout
Show Page Layout
Netmix Radio Station Playlist Table
Playlist Page Table

Show Playlists

Create and attach Playlists to Shows, including Song Title, Artist, Album and Comments. Each Playlist has it’s own individual page and current Show playlist displays via a Current Playlist Widget. Set to Queue or Played to hide or display a Playlist entry.

Show Widgets

A Current Show Widget is available with the plugin for showing your currently on-air Show, including options for which show details you wish to display there. Similarly, an Upcoming Shows Widget lists a number of shows that are scheduled to play next. Also included since 2.3.0 is a countdown timer option, displaying the remaining time for the Current Show and time to commencement for Upcoming Shows.

Current Show Widget
Show Archive List Shortcode

Archive Shortcodes

As well as supporting shortcodes for all the widgets, the plugin now includes archive list shortcodes for the all the plugin post types: Shows, Playlists and Overrides, as well as Shows by Genre. Extensive shortcode attributes are available so you can choose what to display or not. Additionally, Show-related archives shortcodes are available for listing Show Posts and Show Playlists.

Admin Settings Page

As of 2.3.0, you’ll find the new admin settings screen, where you can manage your Station settings. Set your Streaming URL, manage timezone by location and set 12 or 24-hour clock, select automatic display pages and other display options including templates, and set role permissions.

Radio Station Admin Settings Panel
Radio Station Settings Page
Show List Conflict Catcher
Show List Conflict Catcher

Show Conflict Checker

Catch and manage Show Shift Conflicts with our awesome Show Conflict Catcher. Displays existing conflicts in on the Show List page and in the Admin Notifications area. Newly added Show Shifts are checked against all other Show’s shifts when saved. Conflicting shifts are saved but disabled so you can fix shift conflicts.

Plugin User Roles

Users given a Show Host role (eg. DJs) or Producer role can be assigned to a Show, giving them edit permissions and displaying them on the Show page and/or in widgets. And since 2.3.0, along with Producers, we’ve added an extra role for Show Program Editors so that site admins do not have to share their login credentials.

Show Taxonomies

With an in-built Genre Taxonomy and newly added Language Taxonomy, you can assign Genres or Languages to a Show. This is a great bonus, allowing for easier discovery by your listeners of Shows in their favourite genres and native languages.

Station Data API

Using the WordPress REST API (and Feeds), all your Station and Show data is now portable, making integration with other external services a breeze. For example, you can now get listed in the Netmix Radio Station Directory and have your Station’s schedule and show data displayed there automatically!

Ready to get started?

Download via WordPress.Org

Pro version under active development!

Find Out about Radio Station Pro