{"id":359520,"date":"2026-08-31T08:44:48","date_gmt":"2026-08-31T08:44:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/sermon-audio-manager\/"},"modified":"2026-08-31T08:44:35","modified_gmt":"2026-08-31T08:44:35","slug":"tushiyah-sermon-audio-manager","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/tushiyah-sermon-audio-manager\/","author":20983237,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.9.2","stable_tag":"1.9.2","tested":"7.1","requires":"5.8","requires_php":"7.2","requires_plugins":null,"header_name":"Tushiyah Sermon Audio Manager","header_author":"Donovan Chenchiah","header_description":"Publish and organize audio sermons. Hierarchical topics can contain any number of audio messages, with playlists, speakers, series and flexible shortcodes.","assets_banners_color":"757e89","last_updated":"2026-08-31 08:44:35","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":0,"downloads":52,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.9.2":{"tag":"1.9.2","author":"donchen1","date":"2026-08-31 08:44:35","revision":3673680}},"upgrade_notice":{"1.8.2":"<p>Search form now stays visible after searching, so visitors can refine or start over.<\/p>","1.3.0":"<p>Dashboard display controls, player placement options, and a Manual fallback if players don&#039;t appear in your theme.<\/p>","1.2.0":"<p>Theme compatibility fix for blank sermon pages, plus download links and sermon search.<\/p>","1.1.0":"<p>Adds external audio URLs so long sermons no longer hit upload-size limits.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3673680,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3673680,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3673680,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3673680,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.9.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3673680,"resolution":"1","location":"assets","locale":"","width":1887,"height":888},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3673680,"resolution":"2","location":"assets","locale":"","width":1900,"height":891},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3673680,"resolution":"3","location":"assets","locale":"","width":1912,"height":646},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3673680,"resolution":"4","location":"assets","locale":"","width":896,"height":679}},"screenshots":{"1":"Sermon listed for specific topic in descending order and in grid view","2":"WP admin, add sermon option with meta boxes to fill in and settings on right side","3":"All Sermons View in wordpress admin","4":"Individual audio with transcript"}},"plugin_section":[],"plugin_tags":[452,6970,220,6969,11219],"plugin_category":[39,50],"plugin_contributors":[267062],"plugin_business_model":[],"class_list":["post-359520","plugin","type-plugin","status-publish","hentry","plugin_tags-audio","plugin_tags-church","plugin_tags-playlist","plugin_tags-sermons","plugin_tags-topics","plugin_category-business","plugin_category-media","plugin_contributors-donchen1","plugin_committers-donchen1"],"banners":{"banner":"https:\/\/ps.w.org\/tushiyah-sermon-audio-manager\/assets\/banner-772x250.jpg?rev=3673680","banner_2x":"https:\/\/ps.w.org\/tushiyah-sermon-audio-manager\/assets\/banner-1544x500.jpg?rev=3673680","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/tushiyah-sermon-audio-manager\/assets\/icon-128x128.jpg?rev=3673680","icon_2x":"https:\/\/ps.w.org\/tushiyah-sermon-audio-manager\/assets\/icon-256x256.jpg?rev=3673680","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/tushiyah-sermon-audio-manager\/assets\/screenshot-1.png?rev=3673680","caption":"Sermon listed for specific topic in descending order and in grid view"},{"src":"https:\/\/ps.w.org\/tushiyah-sermon-audio-manager\/assets\/screenshot-2.png?rev=3673680","caption":"WP admin, add sermon option with meta boxes to fill in and settings on right side"},{"src":"https:\/\/ps.w.org\/tushiyah-sermon-audio-manager\/assets\/screenshot-3.png?rev=3673680","caption":"All Sermons View in wordpress admin"},{"src":"https:\/\/ps.w.org\/tushiyah-sermon-audio-manager\/assets\/screenshot-4.png?rev=3673680","caption":"Individual audio with transcript"}],"raw_content":"<!--section=description-->\n<p>Tushiyah Sermon Audio Manager adds a Sermon post type with a drag-and-drop audio manager so one sermon can contain multiple audio files (rendered as a native WordPress playlist), plus a hierarchical <strong>Topics<\/strong> taxonomy designed for topics that group many audio messages \u2014 a topic archive lists every sermon and its player automatically.<\/p>\n\n<p>Features:<\/p>\n\n<ul>\n<li><strong>Sermons<\/strong> post type with featured image, excerpt and revisions.<\/li>\n<li><strong>Multiple audio files per sermon<\/strong> via the Media Library, sortable by drag and drop.<\/li>\n<li><strong>External audio URLs<\/strong> \u2014 paste a link to files hosted anywhere (podcast host, S3\/R2, CDN) so long sermons bypass upload-size limits entirely.<\/li>\n<li><strong>Topics<\/strong> taxonomy (hierarchical) \u2014 one topic can contain unlimited audio messages across many sermons.<\/li>\n<li><strong>Speakers<\/strong> and <strong>Series<\/strong> taxonomies included.<\/li>\n<li><strong>Listen or download<\/strong> \u2014 every audio gets a player plus a download link (both toggleable).<\/li>\n<li><strong>Dashboard display controls<\/strong> \u2014 under Sermons &gt; Settings, choose exactly which details appear (date, speaker, series, scripture, topics, author) on single sermons and archive cards, where the player sits, and whether output is injected automatically or placed manually.<\/li>\n<li><strong>Search<\/strong> \u2014 <code>[tushse_sermon_search]<\/code> shortcode with keyword, topic and speaker filters, plus automatic integration with the default WordPress search (including scripture references).<\/li>\n<li>Works with any theme: output is injected into your theme's normal rendering (classic and block themes). No template overrides needed.<\/li>\n<li>Shortcodes:\n\n<ul>\n<li><code>[tushse_sermons topic=\"faith\" limit=\"10\"]<\/code> \u2014 list sermons, optionally filtered by topic, speaker or series.<\/li>\n<li><code>[tushse_sermon id=\"123\"]<\/code> \u2014 display a single sermon with its player(s).<\/li>\n<li><code>[tushse_sermon_topics]<\/code> \u2014 list all topics.<\/li>\n<li><code>[tushse_sermon_search]<\/code> \u2014 sermon search form with results.<\/li>\n<\/ul><\/li>\n<li>Admin list table columns for audio count, date preached, speaker, topics and series, plus a topic filter dropdown.<\/li>\n<li>Optional data removal on uninstall (opt-in on the settings page).<\/li>\n<li>Translation ready; no external requests, no tracking.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>tushiyah-sermon-audio-manager<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the zip via Plugins &gt; Add New &gt; Upload Plugin.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Go to <strong>Sermons &gt; Add New<\/strong>, attach audio files from your Media Library, and assign Topics.<\/li>\n<li>Use <code>[tushse_sermon_topics]<\/code>, <code>[tushse_sermons]<\/code> or <code>[tushse_sermon_search]<\/code> in any page, or just link visitors to <code>yoursite.com\/topics\/&lt;topic-slug&gt;\/<\/code>.<\/li>\n<li>After activating, visit <strong>Settings &gt; Permalinks<\/strong> and click \"Save Changes\" once so sermon links resolve.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20put%20multiple%20audio%20files%20under%20one%20topic%3F\"><h3>How do I put multiple audio files under one topic?<\/h3><\/dt>\n<dd><p>Create a Topic (Sermons &gt; Topics), then assign as many sermons to it as you like. Every sermon can itself carry multiple audio files. The topic archive page lists every sermon in that topic together with its audio player(s). You can also use <code>[tushse_sermons topic=\"your-topic-slug\"]<\/code> anywhere.<\/p><\/dd>\n<dt id=\"can%20one%20sermon%20have%20more%20than%20one%20audio%20file%3F\"><h3>Can one sermon have more than one audio file?<\/h3><\/dt>\n<dd><p>Yes. Click \"Add from Library\" and select several files, or paste an \"External URL\" for files hosted elsewhere. Multiple library files use the built-in WordPress playlist; anything else gets a simple player per file.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20how%20sermons%20look%20on%20single%20pages%20and%20archives%3F\"><h3>Can I customize how sermons look on single pages and archives?<\/h3><\/dt>\n<dd><p>Yes \u2014 the plugin injects the meta line and player(s) into your theme's normal output via <code>the_content<\/code> \/ <code>the_excerpt<\/code>, so any theme works. To customize further, use the <code>tushse_single_head_html<\/code> filter (single sermon heading block) or copy <code>render_item()<\/code> markup patterns from <code>includes\/class-tushse-templates.php<\/code>.<\/p><\/dd>\n<dt id=\"how%20do%20visitors%20search%20sermons%3F\"><h3>How do visitors search sermons?<\/h3><\/dt>\n<dd><p>Add <code>[tushse_sermon_search]<\/code> to any page: it renders a keyword field plus topic and speaker dropdowns, with paginated results. Sermons also appear in your theme's default site search, where keywords match titles, content, scripture references and topic\/speaker\/series names.<\/p><\/dd>\n<dt id=\"how%20do%20download%20links%20work%3F\"><h3>How do download links work?<\/h3><\/dt>\n<dd><p>Each audio shows a Download link next to its player. Media Library files download directly; external URLs open in a new tab (browsers decide whether to play or save based on the host's headers).<\/p><\/dd>\n<dt id=\"wordpress%20says%20my%20sermon%20file%20is%20too%20large%20to%20upload.%20what%20can%20i%20do%3F\"><h3>WordPress says my sermon file is too large to upload. What can I do?<\/h3><\/dt>\n<dd><p>Three options, in order of preference:<\/p>\n\n<ol>\n<li><strong>Host it externally and paste the URL.<\/strong> In the Sermon Audio box use \"Add External URL\" and point to the file on a podcast host, S3\/R2 bucket, Bunny\/Cloudflare CDN, etc. No size limit applies, your server stays fast, and playback works exactly the same.<\/li>\n<li><strong>Re-encode for speech.<\/strong> Spoken word compresses extremely well: export mono MP3 at 64-96 kbps in Audacity\/Audition and a 1-hour sermon drops from ~100 MB+ to roughly 30-45 MB.<\/li>\n<li><strong>Raise the upload limit.<\/strong> Set <code>upload_max_filesize<\/code> and <code>post_max_size<\/code> (e.g. 256M) plus <code>max_execution_time<\/code> in your <code>php.ini<\/code>, <code>.htaccess<\/code> (<code>php_value upload_max_filesize 256M<\/code> etc.), or via your host's control panel. Note these are per-directory PHP settings \u2014 many shared hosts cap them anyway, which is why option 1 is recommended.<\/li>\n<\/ol><\/dd>\n<dt id=\"where%20are%20my%20audio%20files%20stored%3F\"><h3>Where are my audio files stored?<\/h3><\/dt>\n<dd><p>In your regular WordPress Media Library. The plugin stores attachment IDs only, so URLs keep working if you move domains or CDNs. External URLs are stored as validated http(s) links; nothing is copied or proxied by the plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.9.2<\/h4>\n\n<ul>\n<li>Security: output is escaped at the echo point (wp_kses_post) for meta lines and pagination, and the script-bearing audio player output follows the WordPress \"except when you can't\" safe-HTML pattern.<\/li>\n<li>Rename: all element prefixes changed from sam\/SAM to the required 4+ character tushse\/TUSHSE (post type, taxonomies, options, meta keys, shortcodes, blocks, CSS\/JS handles). Plugin renamed to \"Tushiyah Sermon Audio Manager\".<\/li>\n<li>Fixed: block editor script dependency corrected to the registered core handle wp-server-side-render.<\/li>\n<\/ul>\n\n<h4>1.9.1<\/h4>\n\n<ul>\n<li>Added: [tushse_term_title], [tushse_term_image] and [tushse_term_description] shortcodes that pull the current topic\/speaker\/series into your Divi Theme Builder archive layouts.<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>Fixed: [tushse_sermons] now auto-filters to the current term on topic\/speaker\/series archive pages (new auto attribute, default yes) - place it in a Divi Theme Builder archive template and it lists only that speaker\/topic\/series.<\/li>\n<\/ul>\n\n<h4>1.8.8<\/h4>\n\n<ul>\n<li>Changed: Default ordering for [tushse_sermons] is now preached date (sermon date) instead of post published date. Added orderby\/order controls to the widget (default: sermon date, newest first).<\/li>\n<\/ul>\n\n<h4>1.8.7<\/h4>\n\n<ul>\n<li>Fixed: On Divi themes, audio players now render as native HTML5  elements, bypassing wp_playlist_shortcode() \/ wp_audio_shortcode() which enqueue MediaElement scripts that conflict with Divi's et_pb_init_audio_modules.<\/li>\n<\/ul>\n\n<h4>1.8.6<\/h4>\n\n<ul>\n<li>Fixed: disabled wp-mediaelement on Divi sites where it double-initialized alongside Divi's own copy and broke et_pb_init_audio_modules.<\/li>\n<\/ul>\n\n<h4>1.8.5<\/h4>\n\n<ul>\n<li>Fixed: MediaElement assets are skipped on Divi themes to prevent double-initialization that broke layout on pages with audio players.<\/li>\n<\/ul>\n\n<h4>1.8.4<\/h4>\n\n<ul>\n<li>Fixed: MediaElement assets are only enqueued when a player is actually present, resolving conflicts with Divi's et_pb_init_audio_modules on pages with no audio players.<\/li>\n<\/ul>\n\n<h4>1.8.3<\/h4>\n\n<ul>\n<li>Improved: full WordPress Plugin Check (PCP) compliance - escaping, sanitization, nonces, textdomain handling and a prohibited query flag.<\/li>\n<\/ul>\n\n<h4>1.8.2<\/h4>\n\n<ul>\n<li>Fixed: the search form stayed visible after submitting a search.<\/li>\n<\/ul>\n\n<h4>1.8.1<\/h4>\n\n<ul>\n<li>Fixed: [tushse_sermon_search topic=\"...\"] no longer hides its form on first page load.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Added: <code>topic<\/code> attribute for [tushse_sermon_search] to pin a search form to a single topic.<\/li>\n<\/ul>\n\n<h4>1.7.6<\/h4>\n\n<ul>\n<li>Fixed: [tushse_sermon_search] no longer steals an open output buffer when returning early on search requests.<\/li>\n<\/ul>\n\n<h4>1.7.5<\/h4>\n\n<ul>\n<li>Fixed: MediaElement assets enqueued in the page head to avoid a race with theme layout scripts.<\/li>\n<\/ul>\n\n<h4>1.7.4<\/h4>\n\n<ul>\n<li>Fixed: single-file players on non-sermon pages now load the MediaElement stylesheet\/script.<\/li>\n<\/ul>\n\n<h4>1.7.3<\/h4>\n\n<ul>\n<li>Fixed: PHP notice \"_load_textdomain_just_in_time was called incorrectly\" on WordPress 6.7+ from the Recent Sermons widget.<\/li>\n<\/ul>\n\n<p>Full history is available in changelog.txt.<\/p>","raw_excerpt":"Manage audio sermons with topics, speakers and series. Topics can hold any number of audio messages.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/359520","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=359520"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/donchen1"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=359520"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=359520"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=359520"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=359520"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=359520"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=359520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}