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.
[benecaster_app_links]
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.
[benecaster_related_episodes]
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.
[benecaster_social_links]
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.
[benecaster_rss_link]
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.
[benecaster_platform_links]
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.
[benecaster_search]
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).
Legal & Privacy
[benecaster_cookie_notice]
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).