Skip to main content

Shortcodes Reference

Benecaster shortcodes let you embed dynamic podcast content anywhere on your WordPress site — in page editors, widget areas, theme templates, or any context that supports [shortcode] syntax.

Gutenberg blocks and Elementor widgets are available for most shortcodes via the free Blocks & Widgets Library add-on. The shortcodes work independently of the add-on — the add-on wraps them in a visual block editor experience.


Marketing & Social Proof

Use these shortcodes on your homepage, subscribe page, or any public marketing page to display live data from your show.


[benecaster_subscriber_count]

Displays the current active subscriber count for a show. Intended for social proof.

Attribute Default Description
show_id current show Which show to count
tier (all tiers) Restrict to subscribers on a specific tier slug
type paying paying — active paying subscribers only; total — paying + free-tier; free — free-tier only
format full full displays “1,247”; compact displays “1.2k”
minimum 10 Do not render anything if the count is below this number — prevents showing small numbers during launch
label (none) Optional text appended after the number. label="subscribers" → “1,247 subscribers”

Examples:

[benecaster_subscriber_count show_id="1"]
→ 1,247

[benecaster_subscriber_count show_id="1" format="compact" label="paying subscribers"]
→ 1.2k paying subscribers

[benecaster_subscriber_count show_id="1" tier="gold" label="Gold members"]
→ 312 Gold members

Minimum threshold: The minimum attribute prevents the shortcode from rendering during the early days of a show. If your count is below the threshold, the shortcode outputs nothing — no placeholder, no zero. Set minimum="0" to always display.

Free/Premium: Premium (reads from active token data).


[benecaster_episode_count]

Displays the number of published episodes for a show.

Attribute Default Description
show_id current show Which show
tier (all) Count only episodes accessible to a specific tier slug
label (none) Optional text appended after the number. label="episodes" → “87 episodes”

Examples:

[benecaster_episode_count show_id="1" label="episodes"]
→ 87 episodes

[benecaster_episode_count show_id="1" tier="gold" label="premium episodes"]
→ 42 premium episodes

Free/Premium: Free.


[benecaster_tier_price]

Outputs the current price for a membership tier, pulled live from your membership plugin. If you change a price in MemberPress, WooCommerce Subscriptions, or whichever plugin you use, this shortcode updates automatically everywhere it appears.

Attribute Required Description
show_id Yes Show whose bridge to look up the tier in
tier Yes Tier slug to look up

Outputs the raw price number (e.g. 15). Wrap it in HTML for currency formatting:

From just $[benecaster_tier_price tier="gold"]/month
→ From just $15/month

Returns empty string if the tier is not found or the price is not available.

Free/Premium: Premium.


[benecaster_tier_name]

Outputs the display name of a tier, pulled live from your membership plugin. If you rename a tier, the shortcode updates everywhere without editing your pages.

Attribute Required Description
show_id Yes Show whose bridge to look up the tier in
tier Yes Tier slug whose display name to output
Join the [benecaster_tier_name tier="gold"] community
→ Join the Gold community

Returns empty string if the tier slug is not found.

Free/Premium: Premium.


[benecaster_pricing_table]

Renders a complete tier comparison pulled live from your membership plugin — tier names, prices, and subscribe buttons. Always in sync with your membership plugin. When a price or tier name changes, every pricing table on your site updates automatically.

Attribute Default Description
show_id current show Which show’s tiers to display
exclude (none) Comma-separated tier slugs to hide from the table
cta_text Subscribe Button label on each tier’s CTA button
cta_url_base auto-detected Base URL for subscribe links. Benecaster attempts to detect your membership plugin’s signup URL automatically; set this if auto-detection fails or you use a custom subscribe page.

Example:

[benecaster_pricing_table show_id="1" cta_text="Get access"]

Renders a table of all tiers with their names, prices, and subscribe buttons. All elements carry CSS classes for styling — see Customizing Templates for the class reference.

Free-tier and public tiers (where is_public_tier is true) are excluded from the table automatically — they don’t need a subscribe button.

Free/Premium: Premium.


Subscribe & Sign Up


[benecaster_subscribe]

Renders a tier-aware subscription CTA with one or more tier options.

Attribute Default Description
show_id Required
tiers all tiers Comma-separated tier slugs to display
style cards Layout: cards, list, minimal
highlight_tier (none) Tier slug to visually highlight as recommended

Logged-in subscribers see their current tier status instead of the subscribe prompt.

Free/Premium: Premium.


[benecaster_follower_signup]

Renders a free follower signup form. Visitors enter their name and email address to receive a private RSS feed token. No payment required.

Attribute Required Default Description
show_id Yes Post ID of the show the follower is signing up for
button_label No "Subscribe to feed" Text for the submit button
success_message No "Thanks! Check %s for your private feed URL." Message shown after a successful signup. %s is replaced with the submitted email address
show_name_field No "true" Set to "false" to hide the name field and collect email only
collect_name No "true" Alias for show_name_field

What followers receive: A private token-based feed URL — same URL pattern as paying subscribers (/podcast-feed/{show}/?token=…). Followers see only episodes where the Followers availability date in the episode editor has been set and has passed. They do not see all public episodes automatically — follower access is configured per episode. See Free Follower Tier for how to grant episode access to followers.

Duplicate signup: A returning email shows the success message silently without re-creating the user or sending a second welcome email. This prevents email enumeration.

Free/Premium: Free.


Subscriber Account

These shortcodes are primarily used on subscriber-facing pages — the account page, podcast app setup page, or any page a logged-in subscriber visits. They show nothing (or a login prompt) to visitors who are not logged in.


[benecaster_account]

Renders the full subscriber account dashboard: active subscriptions, private feed URL with copy button, QR code, deep links to podcast apps, and a self-service token reset option.

Attribute Default Description
show_id (all shows) Limit display to one show’s subscription info
sections all Comma-separated sections to include: feed_url, qr_code, token_reset, app_links, subscription

Benecaster automatically creates a /podcast-account/ page using this shortcode during setup. Most podcasters place this shortcode on the account page and add a link to it in their membership area or navigation.

Free/Premium: Premium. Renders a login prompt for visitors who are not logged in.


[benecaster_feed_url]

Displays the current subscriber’s personal RSS feed URL.

Attribute Default Description
show_id Required
format link link — clickable link; text — plain text; input — copyable text field
label Your podcast feed URL Label text displayed above or beside the URL

Free/Premium: Premium. Shows nothing if the visitor is not a subscriber.


[benecaster_qr_code]

Renders a QR code — either the subscriber’s personal feed URL or a public show signup page URL.

Attribute Default Description
show_id Required
type feed feed — subscriber’s personal feed URL; signup — public signup page URL
size 200 QR code size in pixels
download true Whether to show a Download button
format both Which download button(s) to show when download is true: both (SVG + PNG), svg (SVG only), png (PNG only)

The feed type requires the visitor to be a logged-in subscriber. The signup type is public-facing and requires no login.

Free/Premium: type=feed — Premium. type=signup — Free.


Renders deep links to open the subscriber’s feed directly in common podcast apps. Links are unique to the subscriber’s private feed URL.

Attribute Default Description
show_id Required
apps all supported Comma-separated app slugs: apple_podcasts, overcast, pocket_casts, spotify, castro
style buttons buttons — full labeled buttons; icons — icon-only

Note on Spotify: Spotify does not support private RSS feeds authenticated by token. The Spotify deep link points to the public show page, not a private feed.

Free/Premium: Premium.


Content


[benecaster_player]

Embeds an episode audio or video player.

Attribute Default Description
episode_id current episode Episode to embed
show_id If no episode_id, embeds the latest episode of this show
style standard Player style: standard, minimal, card
show_title true Show episode title above the player
show_artwork true Show episode artwork

If the current user does not have access to the episode, the locked content message is shown instead (filterable via benecaster_locked_content_message).

Free/Premium: Free (public episodes). Premium required for tier-gated episodes.


[benecaster_episodes]

Renders an episode list or grid.

Attribute Default Description
show_id Required
limit 10 Maximum number of episodes to display
offset 0 Number of episodes to skip (for pagination)
tier current user’s tier Filter to episodes accessible at a specific tier slug
style list list or grid
show_locked true Whether to show locked episodes with teaser content
orderby date date or episode_number
order DESC ASC or DESC

Free/Premium: Free.


[benecaster_show_description]

Outputs the show’s short description or full description. Useful in homepage widgets, show listing cards, and sidebar widgets. The short description is also what appears in the RSS channel <description> and <itunes:summary> fields — editing it affects both the feed and any shortcode placements.

Attribute Default Description
show_id current show ID of the show
type short Which description to output: short (the Short Description field); full (full show description)

If type="short" and the Short Description field is empty, nothing is output — there is no automatic fallback to the full description.

Free/Premium: Free.


[benecaster_episode_description]

Outputs an episode’s short RSS description — the same text that appears in the RSS feed’s <description> and <itunes:summary> fields. Useful for episode summary cards, related episode lists, and any placement where a one-paragraph episode preview is needed without the full show notes.

When no episode_id is set and a show_id is given, outputs the description of the latest published episode for that show — suitable for homepage “latest episode” placements.

Attribute Default Description
episode_id current episode Episode to output the description for
show_id If episode_id is not set, outputs the description for the latest episode of this show

Free/Premium: Free.


[benecaster_latest_episode]

Renders a configurable display block for the latest published episode of a show. Designed for homepage placement, sidebar widgets, and anywhere a “latest episode” feature is needed without writing template code. Outputs nothing if no episodes are published for the show.

Attribute Default Description
show_id Required when episode_id is not set. ID of the show to pull the latest episode from
episode_id If set, displays this specific episode instead of resolving the latest
sections title,description Comma-separated sections to include: title, description, artwork, player, date, duration, number. Renders in the order listed.
style card Layout: card, compact, list
link_title true Whether the episode title links to the episode page
title (none) Optional heading rendered above the block (e.g. "New episode just dropped:")
link_text (none) Optional CTA link at the bottom of the block (e.g. "Listen now →")

When player is included in sections, a minimal audio player is embedded automatically.

Free/Premium: Free.


Episode Page

These shortcodes correspond to the blocks that can be auto-injected on episode pages via the Episode Page settings panel. Using the shortcodes gives you manual placement control — useful when you need navigation mid-content, share buttons in a sidebar, or any layout the blocks panel can’t provide. See Episode Page Layout and Blocks for the admin panel reference.


[benecaster_episode_nav]

Renders previous and next episode navigation links. The Episode Page Blocks panel can auto-inject these without the shortcode — use this shortcode when you need manual placement.

Attribute Default Description
episode_id current episode Episode to generate navigation for
show_id current show Scopes prev/next to this show
style arrows arrows — ← / → with title; text — Previous / Next with title; both — arrow + label + title
show_titles true Whether to display episode titles alongside the links
prev_label Previous Label text for the previous-episode link
next_label Next Label text for the next-episode link
scope show show — prev/next across all show episodes; season — prev/next within the current season (falls back to show if no season is assigned)

Free/Premium: Free.


Displays a list of related episodes. Results are tier-aware — locked episodes render with a lock indicator. Falls back to the latest strategy if the selected strategy returns no results.

Attribute Default Description
episode_id current episode Source episode for relationship queries
show_id current show Show to query
query by_tag Query strategy: by_tag, by_season, by_guest (requires Guest Manager add-on; falls back to by_tag), latest
count 5 Number of related episodes to display. 0 = all results.
style list list — vertical episode list; grid — responsive card grid; cards — full episode cards with artwork
exclude_current true Whether to exclude the current episode from results
title (none) Optional heading rendered above the list (e.g. "You might also like")

Free/Premium: Free.


[benecaster_episode_share]

Renders social share buttons for an episode. Share URLs are generated automatically from the episode URL and title — no per-platform URL entry required.

Attribute Default Description
episode_id current episode Episode to generate share links for
show_id current show Used for show name merge tag resolution
style buttons buttons — labeled button row; icons — icon-only row; minimal — icon row, no labels or borders
platforms all enabled Comma-separated platform slugs: twitter, facebook, linkedin, threads, email, copy
text per-show default Share message template. Supports {{episode_title}}, {{show_name}}, {{episode_number}}

Note on Twitter/X: Twitter appends the episode URL automatically — omit the URL from the text value to avoid duplication.

Free/Premium: Free.


Renders the show’s social media profile links. Profile URLs are configured once in Settings → General → Social Links and used everywhere this shortcode appears. Platforms with no URL configured are automatically omitted.

Attribute Default Description
show_id current show Show whose social links to display
style icons icons — icon-only row; buttons — labeled button row; list — plain linked list
platforms all configured Comma-separated platform slugs to include (acts as an allow-list, not an order override)
label (none) Optional prefix text rendered above the links (e.g. "Follow us:")

Built-in platforms: twitter_x, instagram, facebook, youtube, tiktok, linkedin, threads, bluesky, mastodon, discord, newsletter.

Platform display order follows the order in Settings → General → Social Links, not the platforms attribute order.

Free/Premium: Free.


Renders a link to the show’s public RSS feed. Useful for footers, sidebars, and homepage social rows. Use style="url" to get the raw feed URL for embedding in custom markup.

Attribute Default Description
show_id current show Show to link to
style icon_link icon_link — RSS icon + label text; icon — icon only; link — text link only; url — bare URL string (no anchor element)
label Subscribe via RSS Link text or aria-label (translatable)
icon_size 24 SVG icon width and height in pixels (applies to icon_link and icon styles)

Free/Premium: Free.


Renders “Listen on” badge links for podcast apps. Platform URLs are configured once in Settings → General → Platform Links and used everywhere this shortcode appears. Platforms with no URL configured are automatically omitted.

Attribute Default Description
show_id current show Show to display platform links for
style buttons buttons — labeled button links; icons — icon-only (accessible label set from platform name); list — plain linked list
platforms all configured Comma-separated platform slugs to include (acts as an allow-list, not an order override)

Built-in platforms: apple_podcasts, spotify, overcast, pocket_casts, castro, podcast_addict, amazon_music, youtube_music. Custom platforms defined in the settings panel are also available.

Platform display order follows the order in Settings → General → Platform Links, not the platforms attribute order.

Free/Premium: Free.


Renders a full-text keyword search form for episodes. Results load via JavaScript without a page reload. Tier-aware: anonymous visitors see only public-tier episodes; logged-in subscribers see episodes accessible to their tier.

Attribute Default Description
show_id current show Show to search within. Required on multi-show installs.
placeholder Search episodes… Input placeholder text
per_page 10 Number of results per page
style list Result layout: list — vertical stacked cards; grid — two-column grid

Can coexist on the same site as [benecaster_ai_search] (AI Search add-on). Typical pattern: [benecaster_search] on the public episode archive; [benecaster_ai_search] in a subscriber-gated area.

Free/Premium: Free.


Payments


[benecaster_listener_support]

(Phase 2) Embeds a Listener Support donation form. Lets visitors make a one-time payment to support the show — no subscription required.

Attribute Default Description
show_id Required
amounts configured in settings Comma-separated suggested amounts in cents: 500,1000,2500
allow_custom true Whether to show a custom amount input
button_text Support the show CTA button label
success_message configured in settings Message displayed after a successful donation

Requires Stripe to be configured in Settings → Payments. See Listener Support Setup.

Free/Premium: Free (works without a Benecaster license — requires Stripe keys configured on your site).



Renders the cookie/privacy notice you have configured in Settings → GDPR / Privacy. Manage your notice text in one place and embed it on any page via shortcode — no need to update every page when your wording changes.

Attribute Default Description
class (none) Extra CSS class(es) to add to the wrapper element, space-separated

Output: The shortcode wraps your configured notice text in:

<div class="benecaster-cookie-notice" role="region">
  <!-- your notice text here -->
</div>

If the textarea in Settings → GDPR / Privacy → Cookie notice text is blank, the shortcode outputs nothing — no wrapper element, no whitespace.

Filter: The output is filterable via benecaster_cookie_notice_output:

add_filter( 'benecaster_cookie_notice_output', function( $html, $text, $atts ) {
    // $html   — the full rendered output (wrapper + text)
    // $text   — the raw notice text from settings
    // $atts   — the resolved shortcode attributes array
    return $html;
}, 10, 3 );

Compatibility with consent management plugins: If Complianz, CookieYes, or a similar cookie consent plugin is active, that plugin’s own banners and notice blocks take precedence. The Benecaster cookie notice shortcode is a lightweight fallback for sites that want to display a simple notice without a full consent management plugin. Both can coexist — they serve different audiences.

Example:

[benecaster_cookie_notice]
→ <div class="benecaster-cookie-notice" role="region">This site uses your email address…</div>

[benecaster_cookie_notice class="privacy-callout small-text"]
→ <div class="benecaster-cookie-notice privacy-callout small-text" role="region">…</div>

Free/Premium: Free.


Built-in Membership (Phase 2)


[benecaster_supporter_wall]

Renders the public Supporter Wall — a grid of subscribers who have opted in to be shown publicly. Each card shows the subscriber’s avatar, display name, and tier badges.

Attribute Default Description
show_id Required. Post ID of the show
limit 100 Maximum cards to render. Server-clamped to 500
tier (all) Filter to one tier slug
order (show setting) Override sort order: join_date, tier, or alphabetical

Output when empty: When the wall is enabled but no subscribers have opted in, a benecaster-supporter-wall--empty div with a “No supporters yet — be the first!” message renders. Override the copy via the benecaster_supporter_wall_empty_message filter. The shortcode renders nothing when the wall is disabled for the show.

Default stylesheet: assets/css/supporter-wall.css is auto-enqueued when the shortcode emits output. Four CSS custom properties control the grid: --benecaster-supporter-wall-columns, --benecaster-supporter-wall-gap, --benecaster-supporter-wall-card-padding, --benecaster-supporter-wall-avatar-size. Set them in your theme stylesheet to adjust the layout.

Example:

[benecaster_supporter_wall show_id="1"]
[benecaster_supporter_wall show_id="1" tier="gold" order="alphabetical" limit="50"]

See Supporter Wall for the full setup guide, subscriber opt-in flow, and privacy details.

Free/Premium: Premium. Requires the Supporter Wall to be enabled for the show.


Community Shortcodes

The Community Integrations add-on (Discord + Circle) adds four additional shortcodes for embedding community elements on your site. These are documented separately — see Community Shortcodes Reference.

Shortcode Description
[benecaster_community_link] Universal link or button to your community platform
[benecaster_discord_widget] Read-only Discord server presence widget
[benecaster_circle_embed] Embedded Circle space via official iframe
[benecaster_circle_highlights] Curated posts from a Circle space as styled cards

Placing Shortcodes

Shortcodes work in:

  • The WordPress block editor (Classic block or Shortcode block)
  • Page builder text modules (Elementor Text Editor, Divi Text Module, etc.)
  • Widget text areas
  • PHP templates via do_shortcode( '[benecaster_subscriber_count show_id="1"]' )

Gutenberg blocks and Elementor widgets are available for most shortcodes via the free Blocks & Widgets Library add-on. The visual block experience is recommended over raw shortcodes for non-developer use.


Developer Reference

For full attribute tables, available filters per shortcode, and extension points, see Shortcodes (Developer Reference).