Skip to main content

Creating Episodes

The Episode List

Go to Benecaster → Episodes to see all episodes for the currently selected show. The list shows each episode’s artwork thumbnail, title, metadata line (episode number, type, publish date), status badge (Draft / Published / Scheduled), and access pills indicating which tiers can access it.

Access pills: The colored pills on each episode row summarize tier access at a glance.

Pill Meaning
All tiers Episode is accessible to all configured tiers
Paid only Episode is restricted to paid tiers
Free in N days Free tier gains access on a future date
Live At least one tier has active access
Upcoming No tiers have access yet (scheduled)

Inline row actions: Hover over an episode row to reveal: Edit, Copy audio URL, Preview, and a More⋯ menu (additional actions including Duplicate and Move to Trash).

Creating an Episode

Click + New in the episode list toolbar, or go to Benecaster → Episodes → Create Episode. The episode editor opens with a two-column layout.

Left Column — Content

Title The episode title. Appears on the episode page, in podcast apps, and in the RSS feed.

Podcatcher description Plain text shown in podcast apps. Keep this under 500 characters — many apps truncate longer descriptions in episode listings. A character counter updates as you type. Maps to <description> and <itunes:summary> in RSS.

Full page content A rich text editor for the episode’s show notes. Headings, formatted lists, links and blockquotes work here, and three keyboard triggers pull in real content from your show — @ for a link to another episode, # for a timestamp into the audio, and / for a block such as a player or a supporter thank-you. The Add image button in the toolbar places an image from your WordPress media library.

This content is shown on the episode page on your website, and it is also delivered to podcast apps in the feed’s content:encoded field. Shortcodes are not resolved on the way into the feed, apart from the two gate blocks, so anything else you insert with @, # or / reaches an app as raw shortcode text — fill in Podcatcher Description above so your app-facing summary is prose you controlled. Most podcast apps ignore images in show notes, so treat an image as something for the episode page.

See The Rich Text Editor for the full set of controls and triggers.

Right Column — Sidebar Tabs

Details Tab

Field Description
Show Which show this episode belongs to.
Episode number Auto-increments from the last numbered episode on first publish. Enter a number manually to override; if a number is already set before publish, auto-assignment is skipped.
Season Shown only when seasons are enabled for the show. Enable via Shows → Settings → Feeds → Seasons (or from the show’s Details tab → Show Flags).
Episode type Selects the episode’s type from the types configured for this show. Hidden when the show has only one type configured. See Episode Types.
Explicit A three-way choice: Inherit from show (the default), Yes, or No. Inherit uses whatever the show is set to. Yes marks this one episode explicit on an otherwise clean show. No marks this one episode clean on an explicit show — useful for a listener-safe recap or a trailer sitting inside an explicit series. The choice applies to this episode only and does not change the show’s setting.
Author Override the show-level author for this episode.

Where the Explicit setting shows up. Once set, it is visible in three places without you doing anything:

  • A badge on the front end — on the episode page, on archive cards, in [benecaster_episodes] lists, and in the [benecaster_player] title strip. Explicit episodes carry it; clean episodes show nothing at all, which is deliberate — a badge on every episode tells a listener nothing. Themes can restyle it, reword it, or place it themselves with [benecaster_explicit_badge].
  • A column on the Episodes list — sortable and filterable, so you can audit a back catalogue at a glance instead of opening episodes one at a time. It shows the value that actually applies, and marks episodes carrying their own override so you can tell “explicit because the show is” from “explicit because someone set it here”.
  • Quick Edit — change the setting straight from the list without loading the editor. Useful when a review turns up a handful of episodes to correct.

How the value is worked out. The episode’s own setting wins whenever it is Yes or No. Only Inherit from show defers to the show’s Explicit setting. That resolution happens once, in one place, and everything downstream uses the result — so the badge, the Episodes column, the RSS feed, and the structured data on the episode page can never disagree with each other.

Explicit — for developers. The episode override is stored as a three-value string, not a boolean: 'inherit' (or absent), 'yes', or 'no'. Read the resolved value with EpisodeMeta::get_effective_explicit() rather than reading the meta yourself; write with EpisodeMeta::set_explicit(), which coerces anything unrecognised to 'inherit'. The badge itself is rendered by ExplicitBadgeRenderer and has three filters — benecaster_explicit_badge_mode, benecaster_explicit_badge_label, and benecaster_explicit_badge_html — so the wording and markup are changeable without a template override. Values stored before the enum landed still read correctly — a legacy '1' resolves to 'yes', and a legacy empty or '0' resolves to 'inherit'. See the recipe Resolve or override an episode’s Explicit flag.

Categories A checklist of episode categories appears at the bottom of the Details tab. Check any categories that apply. To create a new category, click Add new category, type the name, and press Enter or Add. See Episode Categories.

Access Tab

Controls when each subscriber tier can access this episode.

Web Publish Date The date and time when this episode’s page appears on your website. Separate from the podcast feed availability dates — a future web publish date keeps the episode page hidden until the date passes.

Tier Availability Lists every tier the show has. On a show using built-in membership, that is its tiers in Memberships → Tiers order, with a retired tier marked (inactive) — retiring a tier only stops new sign-ups, and its members still get what is scheduled for it. On a show using a membership plugin, it is the tiers from its tier mapping.

A new episode follows the show’s Default availability (Show Settings → Details → Advanced). While it does, the tab says “Using this show’s default availability. The dates are worked out from the web publish date each time you save.” and lists each tier’s rule — Never, On release, or N days after release — with the date it works out to. Those dates are recalculated from the Web Publish Date every time you save, at the show’s Default Release Time when one is set.

If the show has no default availability, the tab says “This show has no default availability, so this episode has no tier dates and is not in any feed yet…” and offers Set dates for this episode.

Click Override dates for this episode to set the episode’s own dates. Each tier gets a 30-day-before to 90-day-after timeline and a date-and-time input; the × beside a tier’s name (Remove availability date) clears its date. A cleared tier leaves that tier’s feed as soon as you save — clear every tier and the episode leaves every tier feed. Buy-up Access below is not affected. Dates and times are in your site’s timezone (Settings → General → Timezone), not your computer’s. If the two differ, the tab says so at the top: “Dates and times on this tab are in your site’s timezone ({zone}), set under Settings → General.” Click Use show defaults to go back to the show’s schedule; it appears only when the show has default availability.

See Setting Tier Availability for the full explanation of how tier access dates work.

A signed-in subscriber whose tier’s date is still ahead sees “Available to you on {date}.” on the episode page, in your site’s time zone. One whose tier has no date for the episode sees “This episode isn’t included in your plan.” See Locked Episode States.

Buy-up Access Below the tier timeline, a multi-select lists the active buy-ups on this show. Ticking one means holders of that buy-up also get this episode — on top of whichever tiers the schedule above already gives it to. It does not take the episode away from anyone.

If the show has any Buy-up Defaults set, a new episode arrives with those buy-ups already ticked here, the same way it arrives with the show’s default availability dates. Untick or add to the pre-filled selection before saving if this episode should differ from the show’s default.

Subscribers whose tier already entitles them keep the episode whether or not they hold the buy-up. Multiple selections use OR logic: holding any one of them is enough.

To sell an episode exclusively, leave every tier unscheduled and tick the buy-up. With no tier carrying the episode, buy-up holders are the only people it reaches — in the feed and on your website alike. Ticking a buy-up on an episode that tiers already carry does not make it exclusive.

See Buy-up Content Gating for the full picture.

Media Tab

Field Description
Audio URL Direct URL to the audio file (.mp3, .m4a, etc.).
Primary media Choose whether Audio or Video is the primary media for this episode.
Video URL Optional. Direct URL to a video file.
Embed code Optional. Embed HTML from a video host (YouTube, Vimeo, etc.) as an alternative to a direct video URL.

Auto-detecting media metadata: Click the Detect button next to the Audio URL field to fetch duration, file size, and format from the hosted file. The detected values appear inline and are used in the RSS feed. The Detect button is only enabled after the episode is saved — it requires an episode ID to store the result.

Artwork Tab

The Artwork tab controls the episode’s podcast artwork and the landscape image used on your website.

Artwork URL A square image URL for podcast apps. Benecaster shows a warning if the image is smaller than 1400×1400px — Apple Podcasts and Spotify may reject or display blurry artwork below that threshold. If left blank, the show’s artwork is used as a fallback.

Featured image A draggable crop box lets you select which portion of your square artwork becomes the 16:9 landscape image used on your episode page and in social sharing previews. Drag the crop box to position it, then save the episode. Benecaster downloads the artwork into the WordPress media library, generates a 1200×630 featured image (benecaster-featured image size), and stores it as the episode’s WordPress featured image.

On re-saves, the download is skipped if the Artwork URL hasn’t changed — only the crop is re-applied. If you change the Artwork URL, the image is downloaded fresh.

See Episode Artwork for more detail.

Guests Tab

Add people associated with the episode — guests, hosts, co-hosts, producers, or any contributor role. Credits added here are emitted as <podcast:person> tags per-item in the RSS feed, which podcast apps that support Podcasting 2.0 use to display guest and host information.

▾ Feed Credits

A collapsible Feed Credits section appears beneath the guest list. It is divided into three areas: the host row, auto-populated credits from add-ons, and manually-added credits.

Host row (read-only)

The top row mirrors the show’s Podcasting 2.0 → Host settings. When a host is configured, it shows the host’s name, a “host” role label, and URL with an Edit in settings → link. When no host is configured, a dimmed placeholder reads “No host configured. [Add in Settings →]” linking to the show’s Podcasting 2.0 settings. This row cannot be edited or deleted from the episode editor.

Auto-credits (read-only)

Below the host row, credits injected by add-ons (such as Guest Manager) appear as locked rows. Each locked row shows a padlock icon and a “via {source}” label — for example, “via Guest Manager”. When the add-on provides a source URL, an inline “view source” link opens the originating record. Locked rows have no drag handle and no delete button.

Auto-credits are never written to _benecaster_podcast2_feed_credits — they are a read-only mirror of what the feed compiler will emit. To remove an auto-populated credit, unlink the guest at the source add-on.

Manually-added credits

Below auto-credits, you can add credits specific to this episode. Rows support drag-to-reorder. Each row has four fields: Role (free text), Name, URL (optional), and Image URL (optional). Remove a row with its per-row remove button.

Click Add credit to open an inline form:

Field Notes
Role Dropdown: Host / Guest / Editor / Producer / Custom. Selecting Custom reveals a free-text role input.
Name Required. The Add button stays disabled until this field is non-empty.
URL Optional. Link to a profile, website, or social account.
Image URL Optional. URL to the person’s photo or avatar.

Click Add to append the credit, or Cancel to dismiss the form. The Add button is also disabled until the custom role field is filled when Custom is selected.

The Guest Manager add-on extends guest capabilities into full guest profiles with bios, photos, social links, and dedicated archive pages.

References Tab

Add links and resources mentioned in the episode. References appear in a References section on the public episode page, grouped by the headings you define.

Click Add reference to add a card. Each card has four fields:

Field Description
Label The link text shown to listeners. If you’ve used this reference before, the typeahead (see below) can fill this from your library. It always shows the library’s own label, even when this episode has a display label override.
URL The destination URL. It goes out exactly as you typed it.
Description Optional plain-text note about the reference — what it is or why it’s relevant. Shown on the episode page; not included in the RSS feed.
Display label override Optional. Overrides the Label for this episode only. Useful when the same library item appears in multiple episodes under slightly different names.
Group Assigns the reference to one of the show’s reference groups (headings on the episode page).

Some fields are shared and some belong to this episode. Label, URL and Description belong to the reference in your show’s library, so they are the same on every episode that cites it. Display label override and Group belong to this episode only.

Remove any card with the ✕ button. References save and display in the order shown. An add-on can add its own controls to each card; they appear inside the card, below the fields.

Reference groups Groups let you organize references under headings — for example “Books mentioned”, “Tools”, “Links from the interview”. Groups are defined per show in Benecaster → Shows → [Your Show] → Details → Reference Groups. Once groups exist, the Group dropdown appears on each reference card. Select a group or leave it as “— No group —” to place the reference in the ungrouped section.

To add a group without leaving the episode editor, choose + Add new group… from the Group dropdown, type a name, and press Enter. The group is created immediately and selected for the current card.

Your reference library Every reference you save becomes an entry in the reference library of the episode’s show, as soon as the save finishes. A reference is identified by its label and its address: two references with the same label and the same URL are one library entry, shared by every episode that cites it; the same label with a different URL is a separate entry.

Library typeahead As you type in the Label field, Benecaster searches the reference library of the episode’s own show for matching items, even if the show switcher names a different show. Suggestions appear after two or more characters, each with its address underneath — so two entries can share a label, and the address tells you which is which. Selecting a suggestion fills the Label, URL and Description from the library and links the reference to that entry.

Editing a library reference changes it everywhere. When a reference on this episode is linked to a library entry, the card says so: “This reference is in your show’s library. Changing its label, URL or description updates it on every episode that uses it — use the display label override below to change only this episode.” Correct a broken link once and every episode that cites it is fixed. This applies to a reference you added in this session too: once you’ve saved, editing its URL updates the same library entry rather than creating a second one. To change the wording on this episode alone, use Display label override instead.

Checking references that were merged by mistake. Before a recent update, two references with the same label but different addresses were saved as one — both episodes linked to whichever address was saved first. That has stopped, but references already merged can’t be separated automatically, because the second address was never kept. To find candidates, run wp benecaster references audit, which lists library entries cited by more than one episode (see WP-CLI Commands). Most of what it lists is the library working as intended, so treat it as a shortlist to check. To fix one: leave it as it is on the episode that has the right address, then on the other episode remove the reference and add it again with its own address — that creates a separate entry.

More Tab

Custom fields, errata (when enabled for the show), and Podcasting 2.0 metadata. See Episode Custom Fields.

▾ Credits

A collapsible Credits section appears above Errata on the More tab. It shows the current stamp status: “No template applied” or “Credits (applied from: [template name])”.

To apply a credit: select a template from the dropdown and click Apply. The template body resolves all shortcodes at stamp time. The TipTap editor below shows the resolved HTML, which you can freely edit after stamping. Re-applying a template replaces the current credit entirely — it does not append.

Note: Apply is disabled until the episode has been saved at least once (needs a WordPress post ID). Save as draft first, then open the Credits section to apply a template.

Credit templates are created and managed in Show Settings → Credits. See Episode Credits.

▾ Chapters

A collapsible Chapters section appears on the More tab between Credits and Errata. Use it to add podcast-app chapter markers to an episode — named, timestamped sections that let listeners jump directly to any part of the episode.

Each row has a Start time (HH:MM:SS format, e.g. 00:12:30), a Title, an optional URL, and an optional Image (from the WordPress media library). Use the ↑ ↓ arrows to reorder rows. Rows with an invalid timestamp show an inline error and are dropped silently when the episode is saved.

Changes take effect on the next episode save. See Chapter Markers for full details on RSS output, front-end display, and developer hooks.

▾ Errata

A collapsible Errata section appears on the More tab when the parent show has errata enabled (Shows → Settings → Feeds → Enable errata for this show). If errata is not enabled for the show, this section is not visible in the episode editor.

The Errata field uses the same rich text editor as the show notes — same toolbar, same triggers, same formatting options. Use it to publish corrections, clarifications, or updates after an episode has aired.

Errata content is not emitted in the RSS feed. It appears on the WordPress-rendered episode page only — below the episode body in a clearly labeled “Errata” section. Listeners will see it when they visit the episode page, but it won’t appear in podcast apps.

▾ Podcasting 2.0

A collapsible Podcasting 2.0 section appears on the More tab below any custom field groups.

Transcript

Field Description
URL Direct link to a transcript file for this episode. Type or paste an address, or use Choose file beside the box to pick one from your media library (see below).
MIME type Format of the transcript file. Options: text/plain, text/html, application/srt, text/vtt, application/json. Any stored value not in this list displays as text/plain.

When the Transcription Service add-on is active, a note appears beneath the URL field: “Transcription Service add-on auto-populates this field — you can still override it here.”

Saving keeps a transcript written while the editor was open. The add-on, a REST call or WP-CLI can set the transcript URL or MIME type while you have the episode open. Saving sends each of the two fields only if you changed it yourself, so a value written in the meantime is not overwritten or blanked. After the save, the URL box shows the episode’s stored value, unless you have typed in it since you pressed Save.

Auto-fill from an attached transcript file. Even without the Transcription Service add-on, saving an episode with a .vtt, .srt or .txt transcript file attached fills in an empty Transcript URL field automatically, and sets the MIME type to match. It never overwrites a URL you’ve already entered. If two or more transcript-shaped files are attached, Benecaster can’t tell which one you mean — nothing is filled in, and a dismissible notice names the episode so you can set the URL yourself. If no transcript file is attached, nothing changes.

Choose file button. A Choose file button sits beside the Transcript URL box and opens the standard WordPress media library — upload a new file or pick an existing one, and both the URL and MIME type fill in. The file list here is deliberately unfiltered: WordPress doesn’t recognize .vtt or .srt files, so a text-only filter would hide the two most common transcript formats. The MIME type is set from the file’s name, not the MIME type WordPress recorded for it — a .vtt file is set to text/vtt rather than the text/plain WordPress would otherwise guess. The URL box itself is unchanged and still accepts a pasted, externally hosted address.

MIME type follows the URL. Typing or pasting an address into the URL field also moves the MIME type dropdown to match its extension (.vtt, .srt, .json, .txt, .html) — a query string on the URL doesn’t prevent this. An extension Benecaster doesn’t recognize leaves the current MIME type alone rather than resetting it, the dropdown only updates once the extension is complete (not while you’re still typing), and reopening an already-saved episode never re-infers the type — if it was saved with a MIME type that no longer matches its URL, it stays as saved. The dropdown remains editable by hand at any point.

Soundbites

A drag-to-reorder repeater of short clips worth highlighting. Each row has three fields:

Field Description
Start Start time in decimal seconds. Displayed as mm:ss in the editor; stored as decimal seconds.
Duration Length of the soundbite in decimal seconds. Displayed as mm:ss; stored as decimal seconds.
Title Optional label for the soundbite.

Remove a row with its per-row trash button. Click Add soundbite below the list to add a new row. Maximum 10 soundbites per episode.

Soundbites appear in the RSS feed as:

<podcast:soundbite startTime="{start}" duration="{dur}">{title}</podcast:soundbite>

Saving and Publishing

Save Draft — saves the episode without publishing. The episode is not visible to subscribers or in your RSS feed.

Publish — makes the episode live. The episode appears in your RSS feed and on your website. Tier availability dates in the Access tab control who can play it, in feeds and on your website, and when: everyone once the public tier’s date passes, otherwise signed-in listeners whose own tier’s date has passed. An episode with no dates is locked for everyone. See Setting Tier Availability.

Once published, you can edit the episode at any time. Tier availability dates can be updated after publishing without unpublishing the episode.

See Also

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