[benecaster_member_thanks]
Displays a list of members to thank on-air. Place it on an episode page or in show notes — it runs a live query each time the page loads and returns a formatted list of subscriber names based on the query type you choose.
Episode Credits add-on: When this shortcode is embedded in an episode’s credits block, the Episode Credits add-on stamps the output at publish time. The query runs once at publish, and the result is baked into the episode record — subsequent page loads serve the stamped list without re-querying. To re-query (e.g. after a new subscriber joins), republish the episode.
Four built-in query types are available:
new_since_last_episode— subscribers who joined since the last published episode.
Deterministic: the same names appear on every page load until a new episode is published.random— a purely random draw from active subscribers on every render. No cycling,
no history — the same subscriber can appear on consecutive renders. Use when random-with-repeats is the intent; if you want random-without-repeats-until-pool-resets, userandom_cyclinginstead.random_cycling— draws randomly from active subscribers and rotates through the full list
before any subscriber repeats. Requires the Podcast Workflow add-on to track the cycling pool; without the add-on, falls back to the same behavior asrandom(a pure random draw each render).milestone— subscribers whose 3-month, 6-month, or 1-year anniversary falls since
the last episode.
Additional query types can be registered via the benecaster_member_thanks_query_types filter. Output is filterable via benecaster_member_thanks_output.
What name is displayed
The shortcode resolves each subscriber’s display name through a three-step priority chain (implemented in benecaster_resolve_wall_display_name()):
- Wall display name (
_benecaster_wall_display_name) — the name the subscriber set
on the Benecaster account page. This is the primary lever subscribers use to control how their name appears publicly. If set, it always wins. - WordPress first and last name (
first_name+last_nameuser meta) — used when
both fields are non-empty and no wall display name is set. Subscribers update their name from the Benecaster account dashboard; podcasters can also update subscriber profile fields from the plugin admin. No WordPress admin access is required. - WordPress display name (
wp_users.display_name) — last-resort fallback only. Set
at account creation; the exact format depends on how your membership plugin registers users.
With the Podcast Workflow add-on, the episode_id attribute locks the list to the accepted members for that episode rather than running a live query. Without the add-on, episode_id is ignored and a live query runs as normal.
Parameters
| Name | Type | Default | Required | Description |
|---|---|---|---|---|
show_id |
int |
current show
|
No | ID of the show to query members for. Defaults to the current show context. |
query_type |
string |
random_cycling
|
No | Query strategy key. Built-in options: new_since_last_episode, random, random_cycling, milestone. Use random for random-with-repeats; random_cycling for random-without-repeats-until-pool-resets (requires Podcast Workflow add-on, falls back to random without it). Additional types via benecaster_member_thanks_query_types filter. |
count |
int |
5
|
No | Number of members to return. Pass 0 for all results the query produces. |
tier |
string |
— | No | Filter results to a specific tier slug. Leave empty to include all tiers. |
format |
string |
list
|
No | Output format. Options: - `list` — unordered HTML list (``) of display names - `prose` — comma-separated with natural grammar: "John, Sarah, and Mike" - `names` — plain comma-separated with no grammar: "John, Sarah, Mike" |
episode_id |
int |
— | No | Podcast Workflow add-on only. When provided, outputs the accepted member list for this episode instead of running a live query. Silently ignored without the add-on. |
Example
<!-- Newest members since last episode, prose format for show notes page -->
[benecaster_member_thanks show_id="1" query_type="new_since_last_episode" format="prose"]
<!-- Random cycling pool, 10 names, list format -->
[benecaster_member_thanks show_id="1" count="10" format="list"]
<!-- Founding tier members only -->
[benecaster_member_thanks show_id="1" query_type="random_cycling" tier="founding" count="5"]
<!-- Accepted list for a specific episode (Podcast Workflow add-on required) -->
[benecaster_member_thanks show_id="1" episode_id="456"]