Skip to main content

[benecaster_ai_search]

ai-search

Semantic natural-language search across episode titles, descriptions, show notes, and — when the Transcription add-on is installed — transcripts. Registered by the AI Search add-on; the shortcode does not exist unless that add-on is active.

Without the add-on, this shortcode does not fail quietly — it prints itself. Nothing registers a placeholder for it, and WordPress renders an unregistered shortcode as the literal text [benecaster_ai_search] on the published page. So if the add-on is deactivated, or the page is copied to a site that does not have it, visitors see the tag rather than a search box and nothing anywhere reports an error. Worth knowing before putting it on a page you do not revisit often, and worth checking first on any staging or clone site.

Queries are answered by the AI provider configured in the add-on’s settings, using the podcaster’s own API key. The provider is billed directly for each query — see AI Search API Key Setup.

Coexists with benecaster_search, the keyword search shortcode that is built in at every plan level and needs no add-on. The two are independent and can be placed on the same site simultaneously. Typical pattern: [benecaster_search] on the public episode archive, where it costs nothing to run, and [benecaster_ai_search] gated to a tier with benecaster_tier_gate.

If the AI Search add-on is inactive, a subscriber who passes the gate sees the literal [benecaster_ai_search] tag rather than a search box — see Without the add-on above. When that matters, guard the placement with shortcode_exists() first; see the recipe Show AI Search by subscriber tier.

Result visibility. Relevance is scored against all episodes, including ones the visitor cannot access — the best semantic match surfaces regardless of access level, and only the display is gated. result_visibility controls what happens to those matches:

hidden (the default) drops inaccessible episodes from the results entirely.

locked shows them as a locked card: the episode title, a lock icon, and a tier label reading “Available to [tier name] subscribers”, with an upgrade CTA. Descriptions, excerpts, and transcript snippets are withheld — including when a transcript match is what drove the ranking.

Visibility is per placement, so the same site can run locked on a public search bar as a conversion surface and hidden in a subscriber-only area at the same time.

Locked card markup can be replaced wholesale via the benecaster_ai_search_locked_result filter. A Gutenberg block and an Elementor widget are available through the Blocks & Widgets Library add-on; this shortcode is the universal fallback.

Parameters

Name Type Default Required Description
show_id int (current show) No Show to search within. Required on multi-show installs where no show context is available.
result_visibility string hidden No How episodes the visitor cannot access are treated. hidden — excluded from results entirely. locked — shown as a locked card with title, tier label, and upgrade CTA.
locked_cta_url string (subscriber signup page) No Destination for the upgrade CTA on locked cards. Defaults to the site's subscriber signup page. Only meaningful when result_visibility is locked.
locked_cta_label string Subscribe to access No Label for the upgrade CTA on locked cards. Only meaningful when result_visibility is locked.

Example

<!-- Default: inaccessible episodes are hidden -->
[benecaster_ai_search]

<!-- Public search bar used as a conversion surface -->
[benecaster_ai_search result_visibility="locked"]

<!-- Locked cards pointing at a specific upgrade page -->
[benecaster_ai_search result_visibility="locked" locked_cta_url="/join/" locked_cta_label="Unlock the full archive"]

<!-- Specific show on a multi-show install -->
[benecaster_ai_search show_id="2"]