{"id":247439,"date":"2025-08-22T15:11:22","date_gmt":"2025-08-22T15:11:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/gt-podcast-bb\/"},"modified":"2026-08-13T10:51:21","modified_gmt":"2026-08-13T10:51:21","slug":"gt-podcast-bb","status":"publish","type":"plugin","link":"https:\/\/sv.wordpress.org\/plugins\/gt-podcast-bb\/","author":5713323,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.4.0","stable_tag":"0.4.0","tested":"7.1","requires":"6.8","requires_php":"7.4","requires_plugins":null,"header_name":"Podcast data for block themes","header_author":"Birgit Pauli-Haack","header_description":"Using Podcast meta data in Block Bindings and block variations.","assets_banners_color":"714d8d","last_updated":"2026-08-13 10:51:21","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/ko-fi.com\/paulchenhaack","header_plugin_uri":"https:\/\/icodeforapurpose.com\/gt-podcast","header_author_uri":"https:\/\/icodeforapurpose.com\/about","rating":0,"author_block_rating":0,"active_installs":0,"downloads":486,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"0.3.0":{"tag":"0.3.0","author":"bph","date":"2025-08-22 15:18:45"},"0.3.5":{"tag":"0.3.5","author":"bph","date":"2025-11-11 15:34:45"},"0.3.6":{"tag":"0.3.6","author":"bph","date":"2025-11-11 17:17:29"},"0.4.0":{"tag":"0.4.0","author":"bph","date":"2026-08-13 10:51:21"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3644982,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3644982,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3645315,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3645315,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.3.0","0.3.5","0.3.6","0.4.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[246427,148857,15204,148076,238],"plugin_category":[56],"plugin_contributors":[246680],"plugin_business_model":[],"class_list":["post-247439","plugin","type-plugin","status-publish","hentry","plugin_tags-block-bindings","plugin_tags-block-editor","plugin_tags-episode","plugin_tags-gutenberg","plugin_tags-podcast","plugin_category-social-and-sharing","plugin_contributors-bph","plugin_committers-bph"],"banners":{"banner":"https:\/\/ps.w.org\/gt-podcast-bb\/assets\/banner-772x250.png?rev=3645315","banner_2x":"https:\/\/ps.w.org\/gt-podcast-bb\/assets\/banner-1544x500.png?rev=3645315","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/gt-podcast-bb\/assets\/icon-128x128.png?rev=3644982","icon_2x":"https:\/\/ps.w.org\/gt-podcast-bb\/assets\/icon-256x256.png?rev=3644982","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>** Still in beta stage, use at your own risk. **<\/p>\n\n<p>This plugin turns your podcast data from the <a href=\"https:\/\/wordpress.org\/plugins\/seriously-simple-podcasting\/\">Seriously Simple Podcasting<\/a> plugin (SSP) into block bindings you can use in any block theme \u2014 no PHP or custom fields UI required. It also ships two ready-made archive templates and podcast-specific icons for the Social Links block.<\/p>\n\n<h4>What it gives you<\/h4>\n\n<p><strong>Block bindings for episode data<\/strong> (source <code>gt-podcast-bb\/episode-data<\/code>):<\/p>\n\n<ul>\n<li><code>recording_date<\/code> \u2014 formatted from the <code>date_recorded<\/code> meta.<\/li>\n<li><code>download_link<\/code> \u2014 the episode's <code>audio_file<\/code> URL. Works on <code>wp:button<\/code> (URL) and on <code>wp:audio<\/code> (<code>src<\/code>), so you can wire up a native HTML5 audio player straight from the meta value.<\/li>\n<li><code>podcast_description<\/code>, <code>podcast_title<\/code>, <code>podcast_subtitle<\/code>, <code>podcast_author<\/code>, <code>podcast_owner_name<\/code>, <code>podcast_owner_email<\/code>, <code>podcast_copyright<\/code>, <code>podcast_language<\/code> \u2014 pulled from SSP's Feed Details options.<\/li>\n<li><code>subscribe_url<\/code> \u2014 populates each <code>wp:social-link<\/code> from SSP's Feed Details subscribe URLs. The plugin auto-derives the SSP option key from the block's own <code>service<\/code> slug (e.g. <code>applepod<\/code> \u2192 <code>apple_podcasts<\/code>, <code>feed<\/code> \u2192 <code>rss<\/code>) via a filterable map (<code>gt_podcast_ssp_service_map<\/code>), so no arg is needed for common services.<\/li>\n<\/ul>\n\n<p><strong>Series-aware.<\/strong> On <code>\/series\/{term}\/<\/code> pages the feed-detail bindings pick up the currently queried series first, then fall back to the site-wide default series (<code>ss_podcasting_default_series<\/code>), then to the base SSP option.<\/p>\n\n<p><strong>Podcast-specific Social Links icons.<\/strong> Registers Apple Podcasts, Pocket Casts, CastBox, Podbean, and Podchaser as <code>wp:social-link<\/code> services so they render correctly with the core Social Links block.<\/p>\n\n<p><strong>Two bundled block templates<\/strong> (registered via <code>register_block_template()<\/code>):<\/p>\n\n<ul>\n<li><code>taxonomy-series<\/code> \u2014 the Series taxonomy archive.<\/li>\n<li><code>archive-podcast<\/code> \u2014 the Podcast post-type archive.<\/li>\n<\/ul>\n\n<p>Themes can override either template by shipping their own <code>templates\/taxonomy-series.html<\/code> or <code>templates\/archive-podcast.html<\/code>; that is standard WordPress behavior, not a plugin quirk.<\/p>\n\n<h4>Plugin vs. Theme Responsibilities<\/h4>\n\n<p>When something doesn't render the way you expect, this chart helps you decide whether to fix it in the plugin or in your theme.<\/p>\n\n<p><strong>Plugin owns (data + registrations):<\/strong><\/p>\n\n<ul>\n<li>All the bindings and helpers above.<\/li>\n<li>Cover-image binding falls back to the post's featured image when no <code>cover_image_id<\/code> meta is set.<\/li>\n<li>Custom <code>wp:social-link<\/code> services (Apple Podcasts, Pocket Casts, CastBox, Podbean, Podchaser) via <code>block_core_social_link_get_services<\/code>.<\/li>\n<li>Opting <code>core\/audio.src<\/code>, <code>core\/video.src<\/code>, <code>core\/video.poster<\/code>, and <code>core\/social-link.url<\/code> into <code>block_bindings_supported_attributes<\/code> (WP 6.9+) so those attributes accept bindings.<\/li>\n<li>Bundled <code>taxonomy-series<\/code> and <code>archive-podcast<\/code> templates as sensible defaults.<\/li>\n<\/ul>\n\n<p><strong>Theme owns (presentation):<\/strong><\/p>\n\n<ul>\n<li>Which template renders <code>\/podcast\/<\/code> and <code>\/series\/{term}\/<\/code>, and its visual layout. Any theme file with the same slug will override the plugin's registered template.<\/li>\n<li>Button styling, spacing, column widths, typography \u2014 the plugin ships unstyled markup so your <code>theme.json<\/code> and CSS drive the look.<\/li>\n<\/ul>\n\n<h4>Common gotchas<\/h4>\n\n<ul>\n<li><strong>Template edits in the plugin folder don't appear on the site.<\/strong> Your active theme is probably shipping its own template with the same slug \u2014 that always wins. Edit the theme file, or remove it if you want the plugin's default back.<\/li>\n<li><strong>Bindings return nothing on <code>\/podcast\/<\/code>.<\/strong> That page has no queried series, so the plugin falls back to the <code>ss_podcasting_default_series<\/code> option \u2014 set a default series in SSP's settings if none is configured.<\/li>\n<li><strong>Audio bar doesn't play or download URL is empty.<\/strong> Make sure the episode has an <code>audio_file<\/code> meta value set (SSP's episode editor).<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/gt-podcast-bb<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>The plugin requires Seriously Simple Podcasting plugin and Gutenberg plugin 21.1 or higher to be installed and activated.<\/li>\n<li>Use the block bindings in your block editor to access episode and podcast data.    <\/li>\n<li>Use the social icon links to link to your podcast on popular directories.<\/li>\n<li>Use the template to create an archive page for your podcast using the social icons and the block bindings.<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Added: <code>subscribe_url<\/code> binding on the <code>episode-data<\/code> source \u2014 populates each <code>wp:social-link<\/code> from SSP's Feed Details subscribe URLs. Auto-derives the SSP option key from the block's own <code>service<\/code> attribute via a filterable map (<code>gt_podcast_ssp_service_map<\/code>), so no arg is needed for common services.<\/li>\n<li>Added: new episode-data keys: <code>podcast_title<\/code>, <code>podcast_subtitle<\/code>, <code>podcast_author<\/code>, <code>podcast_owner_name<\/code>, <code>podcast_owner_email<\/code>, <code>podcast_copyright<\/code>, <code>podcast_language<\/code>.<\/li>\n<li>Added: audio and video block support \u2014 filter <code>block_bindings_supported_attributes<\/code> opts <code>core\/audio.src<\/code>, <code>core\/video.src<\/code>, <code>core\/video.poster<\/code> into the bindings allow-list (WP 6.9+), so the audio block can play an episode's <code>audio_file<\/code> directly.<\/li>\n<li>Added: <code>templates\/archive-podcast.html<\/code> \u2014 bundled template for the <code>podcast<\/code> post-type archive. Registered alongside <code>taxonomy-series<\/code> via <code>register_block_template()<\/code>.<\/li>\n<li>Changed: feed-detail bindings are now series-aware \u2014 on <code>\/series\/{term}\/<\/code> pages they read the current queried series first, then fall back to the site-wide default series (<code>ss_podcasting_default_series<\/code>), then to the base SSP option.<\/li>\n<li>Changed: cover-image binding falls back to the post's featured image when no <code>cover_image_id<\/code> meta is set.<\/li>\n<li>Changed: renamed <code>templates\/template-code.html<\/code> \u2192 <code>templates\/taxonomy-series.html<\/code>.<\/li>\n<li>Fixed: <code>GT_PODCAST_VERSION<\/code> constant now matches the plugin header version.<\/li>\n<li>Docs: added \"Plugin vs. Theme Responsibilities\" chart and common-gotchas section to <code>readme.md<\/code>.<\/li>\n<li>Tested up to WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>0.3.6<\/h4>\n\n<ul>\n<li>updated tested up to 6.9<\/li>\n<\/ul>\n\n<h4>0.3.5<\/h4>\n\n<ul>\n<li>Fixed template registration<\/li>\n<li>Fixed the method to identify the default podcast series<\/li>\n<li>added plugin icon<\/li>\n<li>removed hard-coded URLs from the social icons in the template <\/li>\n<li>fixed query in the series-taxonomy template to inherit=true<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>remove gitignore<\/li>\n<li>add \/languages folder<\/li>\n<li>consistent text domain with plugin name. <\/li>\n<li>rename Test-on-WordPress-playground.svg<\/li>\n<li>updated readme.md <\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Fixed placeholders for block variations<\/li>\n<li>Fixed template association with <code>taxonomy-series<\/code> for podcast archive. <\/li>\n<li>Restrict podcast info to default _20 series. <\/li>\n<li>Text domain consistency (gt-podcast-bb throughout)<\/li>\n<li>Block binding source names updated (gt-podcast-bb\/episode-data, etc.)<\/li>\n<li>Template HTML updated with correct binding sources<\/li>\n<li>WordPress 6.8 requirement with Gutenberg dependency<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release with block bindings for episode and podcast data.<\/li>\n<li>Added social icon links for popular podcast directories.<\/li>\n<li>Included a template for a podcast archive page.<\/li>\n<\/ul>","raw_excerpt":"Adds block bindings for episode and podcast data, social icon links for podcast directories and a template for a podcast archive page.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/247439","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=247439"}],"author":[{"embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bph"}],"wp:attachment":[{"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=247439"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=247439"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=247439"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=247439"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=247439"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=247439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}