Skip to main content

Episodes Overview

Episodes are the Benecaster content unit in Benecaster. Each episode belongs to a show, carries its own audio (or video) file, and appears in the private RSS feeds of the subscribers whose tier has access to it.


What an Episode Is

An episode in Benecaster is a WordPress custom post type (benecaster_episode). When you create an episode, you set:

  • Title and description — the show notes your subscribers read
  • Show — which show this episode belongs to (see Show field below)
  • Audio or video file URL — hosted on your podcast hosting provider; Benecaster links to it, it does not host the file
  • Episode type — Full, Trailer, Bonus, or a custom type you’ve defined
  • Season and episode numbers — optional; used in RSS and displayed in podcast apps that support seasons
  • Tier availability — which of your subscription tiers can access this episode, and when (see Episode Defaults below)
  • Artwork — per-episode artwork; falls back to show artwork in the feed if not set
  • Transcript URL — a link to a transcript file; required for the <podcast:transcript> RSS tag; the Transcription Service add-on can populate this automatically, or you can enter a URL manually
  • Chapter markers — timestamps, titles, and optional images embedded in the feed as a JSON chapters file
  • Custom fields — any additional structured data you’ve configured for your show (references, guests, etc.)

Episode Defaults

New episodes inherit their availability dates from your show settings, so you don’t have to configure each episode from scratch:

Availability dates — the dates on which each tier gains access to a new episode. You set a staggered release window once at the show level (e.g. Premium on publish day, Basic one week later, Free two weeks later) and every new episode pre-fills with those dates. You can override the dates for any individual episode without affecting the show-level defaults.

Availability defaults are set in Show Settings → Details → Advanced → Default availability. When editing an episode, the Access tab shows whether the episode is following the show’s defaults or has its own dates.


Show Field

The Show field in the episode editor’s Details sidebar tab controls which show an episode belongs to.

Single-show sites — the Show field displays as a read-only label showing your show’s name. No action needed.

Multi-show sites — the Show field is a dropdown listing all your active shows, on new and existing episodes alike. Select the show a new episode belongs to when creating it. An episode can only belong to one show at a time.

Moving an Episode to Another Show

On a multi-show site you can move an existing episode by picking a different show in its Show field. Save any other changes first: moving reloads the editor, and unsaved edits are lost. A confirmation, Move “{episode}” to “{show}”?, lists what the move does:

  • Its availability is cleared. The episode is in no feed of either show until you set a schedule on the new show’s Access tab.
  • Audio versions are kept only for tiers the new show also has.
  • Its episode type is kept if the new show has the same type; otherwise it becomes Full.
  • Its episode and season numbers stay as they are, even if the new show already uses them.
  • Its references are added to the new show’s reference library.
  • Its download history stays with the old show.
  • If it is published, the old show’s listeners lose it from their podcast app at its next refresh, and links to it in that show’s emails stop working.

Click Move episode to go ahead. Afterwards, a notice at the top of the editor repeats what was cleared or dropped.

Some episodes can’t be moved yet. If listeners paid for access in a way the new show can’t honour, the dialog reads This episode can’t be moved yet, lists each item in the way, and offers only Close. Two things block a move:

  • A required buy-up. Remove it on the episode’s Access tab first.
  • A standalone sale, where listeners bought this one episode. Remove the episode from that sale first or, if nothing sells it any more, remove it under Other Access on the episode’s Access tab (see Setting Tier Availability). After that the move goes through.

The editor always works with the episode’s own show. Its episode types, tiers and buy-ups on the Access tab, the tiers on the Media tab, and its guest settings all come from the show the episode belongs to. That holds even when you open an episode from a link while the show switcher names a different show.


Episode Pages

Every published episode gets a public-facing web page on your WordPress site. The episode page shows the episode title, player, description, and any custom fields you’ve configured.

How episode pages and feeds relate:

  • The RSS feed is what podcast apps use — authenticated by each subscriber’s token, delivers audio directly to the app
  • The episode page is for web browsers — useful for sharing links, show notes with references, and SEO

Tier availability dates apply to episode pages too. Everyone can play an episode once the date for the tier whose slug is public has passed; before that, only signed-in listeners for whom one of their tiers’ dates has passed (or who hold a buy-up the episode requires). A signed-in subscriber’s tiers are the ones their membership plugin (or built-in membership) reports they hold right now, the same tiers their feed uses, so a member holding two levels can play both levels’ episodes, and after a Tier Mapping change or a switch of membership plugin the website follows the new mapping straight away. They still need an active feed token. An episode with no dates is locked for everyone. Anyone who can’t play it sees the locked state described below.

What plays on the website. An episode with an audio URL plays its audio. A video-only episode (a video URL and no audio URL) plays as video, with the episode artwork as the poster frame. That holds everywhere an episode plays on your site: the episode page, its card in the episode archive, the [benecaster_player] and [benecaster_latest_episode] shortcodes, and each item in a [benecaster_episodes] list. An episode with both files plays its audio; to play the video instead, use [benecaster_player media="video"]. The list and the archive card always play the audio when there is one.

The episode’s own video plays only for a visitor who can hear the episode, with one exception you choose: a Video Preview with a time span, which is a teaser and not protection. A visitor shown an audio preview clip gets the clip, never the video. A video-only episode with no video preview shows that visitor the locked message.

You can link directly to an episode page from your email broadcasts, show notes, or social posts. The URL follows WordPress’s permalink structure for the benecaster_episode post type — typically something like yourdomain.com/episode/episode-title/.

To disable episode pages (if you prefer to keep everything inside the RSS feed), go to Show Settings → Advanced and turn off Episode single pages. The episode archive page can be disabled separately.


Episode Archive

Benecaster generates an episode listing page — the archive — that displays all published episodes for a show. This is the /episodes/ or equivalent URL for your show, useful as a public episode index.

Like episode pages, the archive respects tier access: locked episodes show the locked message and upgrade prompt. A locked episode’s card shows the same teaser text as its episode page (see Teaser content below), or no description when there is none, never the episode’s description or the start of its notes. Text inside [benecaster_tier_gate] or [benecaster_access_gate] never appears on a card or in a teaser, [benecaster_else] text included.

The archive has no RSS feed of its own. WordPress would normally publish one at /episode/feed/; Benecaster turns it off, so that address returns Page not found and the archive page doesn’t link to it. Your show’s podcast feed is the feed to share.

For developers: WordPress’s own REST endpoint for episodes, wp-json/wp/v2/benecaster-episodes, follows the same access rules. A visitor who can’t open an episode gets only its teaser as content and excerpt, and no meta, so no media URLs. Editors, and visitors who can open the episode, get everything.

To disable the archive without affecting individual episode pages, go to Show Settings → Advanced and turn off Episode archive page.


How Episodes Appear in Feeds

An episode appears in a subscriber’s private feed when:

  1. The episode is published (not draft or scheduled)
  2. The subscriber’s tier has an availability date set for that episode
  3. That availability date is in the past (or today)

Episodes with no availability date set for a tier do not appear in that tier’s feed — they’re not locked, they’re simply absent. Set an availability date (including a past date to make it immediately accessible) to include an episode in a tier’s feed.

See Setting Tier Availability for the full per-tier, per-episode availability system.


Locked Episode States

When a visitor or subscriber doesn’t have access to an episode, Benecaster renders a locked state rather than the full content. Four locked state variants exist:

Locked indicator + upgrade prompt (logged-in subscriber who can’t play it yet) A padlock indicator appears in place of the player or content, with a line telling the subscriber where they stand:

  • “Available to you on {date}.” when the access date for the episode is still ahead for every tier they hold. The date is shown in your site’s time zone and date format.
  • “This episode isn’t included in your plan.” when none of their tiers has an access date for the episode at all.

Their tiers are the ones their membership plugin (or built-in membership) reports they hold right now, as their feed uses. If they also own episodes outright (bought individually, for example), the date is the earliest one across their tiers and those purchases, because that is when the page actually opens for them. A buy-up’s date is never used here, and a buy-up the episode requires opens it straight away anyway. The Web Publish Date is still one date for everyone; this line is about the subscriber’s own access date.

Below it, an upgrade prompt keeps its View subscription options button but drops its “available to subscribers only” line, since the line above already says why. Logged-out visitors, signed-in visitors with no subscription, followers, and subscribers whose membership plugin reports no level for them see the generic wording instead: “This episode is available to subscribers.” The copy and HTML are filterable via benecaster_locked_content_message and benecaster_upgrade_prompt_html.

Episodes a listener owns open on the website too. A listener who owns an episode outright can play it on its episode page, not just in their podcast app, even after their membership has ended.

Locked indicator + login prompt (logged-out visitor) The player area shows a padlock and a prompt to log in or subscribe. The copy is filterable via benecaster_locked_content_message.

Preview clip player (no code required) If the episode has both a Preview clip URL and a main audio URL set — in the episode editor’s Media tab, see Episode Editor — Media — a visitor who can’t hear the full episode gets a working player with the preview clip instead of the padlock and prompt. This shows up on the episode page, on the episode’s archive card, and anywhere the [benecaster_player] shortcode is used. On the episode page, the subscribe section still appears below the clip player; on the archive card and in the shortcode, the clip player replaces the locked message entirely. Subscribers who can hear the episode get the full file as normal. This is the no-code path for letting non-subscribers hear a snippet, without writing a filter — if you need a clip that isn’t stored on the episode itself (fetched from your host on request, for example), see the show-preview-player-to-non-subscribers recipe.

Teaser content (optional) By default a locked episode shows no teaser text. A theme or plugin can supply one, such as the first lines of the description, with the benecaster_teaser_content filter.

These templates live in templates/global/locked-message.php, templates/global/upgrade-prompt.php, and templates/global/login-prompt.php and can be overridden from a theme. See Template Overrides.


Disabling Episode Pages and Archives

Two toggles in Show Settings → Advanced control whether Benecaster renders public episode URLs:

Episode single pages — when disabled, all individual episode URLs return a 404. Useful when you only want episodes accessible through the private RSS feed, not via the web.

Episode archive page — when disabled, the /episode/ archive URL returns a 404. Individual episode pages still work unless the single pages toggle is also off.

Disabling the archive removes the has_archive registration for the episode CPT — you’ll need to flush WordPress permalinks (Settings → Permalinks → Save) after changing this setting.


Episode Numbering

Benecaster can assign episode numbers automatically. Auto-numbering applies to episodes whose type maps to the iTunes full type. Trailer and Bonus type episodes don’t receive automatic numbers — set them manually or leave them blank.

Auto-numbering is configured per show in Show Settings → Episodes.


See Also

See Also

Need this built rather than just documented? See our services →