Documentation

Everything you need to get started with PodLoom.

Getting Started

Get PodLoom up and running in just a few minutes.

Installation

  1. Download the latest release from GitHub Releases
  2. In WordPress, go to Plugins → Add New → Upload Plugin
  3. Upload the ZIP file and click Install Now
  4. Click Activate
  5. Go to Settings → PodLoom to configure

Choose Your Setup

PodLoom works with two types of podcast sources:

Transistor.fm

Best if you host with Transistor. Uses their API for seamless integration with light/dark themes.

Set up Transistor →

RSS Feeds

Works with any podcast host. Full Podcasting 2.0 support with chapters, transcripts, and more.

Set up RSS →

Transistor.fm Setup

Connect your Transistor.fm account to embed episodes directly.

Get Your API Key

  1. Log in to your Transistor Dashboard
  2. Click your profile icon → Account Settings
  3. Scroll to the API section
  4. Copy your API key

Add to PodLoom

  1. In WordPress, go to Settings → PodLoom
  2. Click the Transistor tab
  3. Paste your API key and click Save
  4. Your shows will appear automatically

Embedding Episodes

  1. Edit any page or post
  2. Add a new block and search for "PodLoom"
  3. Select your show from the dropdown
  4. Choose an episode or display mode
  5. Publish!
Tip: Subscribe links from Transistor are automatically imported. Check Settings → PodLoom → Subscribe Buttons.

RSS Feed Setup

Use any podcast's RSS feed to display episodes with full Podcasting 2.0 features.

Find Your RSS Feed URL

Your podcast host provides an RSS feed URL. Common locations:

  • Transistor: Show Settings → Distribution → RSS Feed
  • Buzzsprout: Directories → RSS Feed
  • Anchor/Spotify: Settings → RSS Distribution
  • Libsyn: Destinations → RSS Feed

The URL typically looks like: https://feeds.transistor.fm/your-show

Add Your Feed

  1. Go to Settings → PodLoom → RSS Feeds
  2. Enable RSS feeds if not already enabled
  3. Click Add Feed
  4. Paste your RSS feed URL
  5. Give it a name (e.g., "My Podcast")
  6. Click Save Changes

Podcasting 2.0 Features

If your feed includes Podcasting 2.0 tags, PodLoom automatically displays:

  • Chapters - Clickable chapter list with timestamps
  • Transcripts - Full episode transcripts (SRT, VTT, HTML, TXT, JSON)
  • Person Tags - Hosts and guests with photos
  • Funding - Support buttons for listener donations

These appear as tabs below the player when available.

Not seeing Podcasting 2.0 features? Your podcast host must support these tags. Check their documentation or contact support.

Elementor Integration

Use PodLoom with Elementor's drag-and-drop editor.

Requirements

  • Elementor 3.0.0 or higher
  • At least one podcast source configured (Transistor API key or RSS feed)

Adding the Widget

  1. Open any page with Elementor
  2. In the widget panel, search for "PodLoom"
  3. Drag the PodLoom Episode widget onto your page
  4. Select your podcast source from the dropdown
  5. Choose a display mode and episode

Widget Options

Podcast Source Choose from your configured Transistor shows or RSS feeds
Display Mode Specific Episode, Latest Episode, or Playlist
Episode Search and select from your episodes (Specific mode only)
Player Theme Light or Dark (Transistor sources only)
Max Episodes Number of episodes in playlist (5-100)
Tip: Use the search feature in the Episode dropdown to quickly find episodes by title.

Display Modes

Choose how episodes appear on your site.

Specific Episode

Embed a single, specific episode. Great for:

  • Show notes pages
  • Featuring a particular episode
  • Embedding in blog posts about the episode

Latest Episode

Automatically shows your most recent episode. Updates whenever you publish new content. Great for:

  • Homepage embeds
  • Sidebar widgets
  • Any page that should stay current

Playlist

Shows multiple episodes with an Episodes tab for browsing. Features:

  • Browsable list - Click any episode to play
  • Auto-play next - Next episode plays when current finishes
  • Now playing indicator - Visual indicator for current episode
  • Episode ordering - Newest first (episodic) or oldest first (serial)
  • Configurable count - Show 5-100 episodes

Tip: Use "Serial" ordering for narrative podcasts where listeners should start from Episode 1.

Troubleshooting

Solutions to common issues.

Episodes aren't updating
  1. Go to Settings → PodLoom → General
  2. Click Clear Cache
  3. Check that your cache duration isn't too long

By default, feeds are cached for 6 hours to reduce server load.

Podcasting 2.0 features aren't showing
  1. Verify your podcast host supports Podcasting 2.0 tags
  2. Check that features are enabled in your host's dashboard
  3. Clear the PodLoom cache
  4. Refresh the page

Not all hosts support chapters, transcripts, or person tags. Contact your host for details.

Transcripts won't load
  1. Ensure the transcript URL is publicly accessible
  2. Check browser console for CORS errors
  3. Verify the format is supported (SRT, VTT, HTML, TXT, JSON)

PodLoom proxies transcript requests to avoid CORS issues, but the original URL must be accessible.

"No sources available" in Elementor
  1. Go to Settings → PodLoom
  2. Add your Transistor API key or RSS feed URLs
  3. Return to Elementor and refresh the page
Player styling doesn't match my theme
  1. Go to Settings → PodLoom → Appearance
  2. Adjust colors, fonts, and other options
  3. Or enable Minimal Styling Mode and add custom CSS
How do I completely reset the plugin?
  1. Go to Settings → PodLoom → General
  2. Scroll to Danger Zone
  3. Type RESET to confirm
  4. Click Delete All Plugin Data

This removes all settings and cached data but keeps the plugin installed.

For Developers

Extend PodLoom with WordPress filters.

Available Filters

podloom_episode_data Modify episode data before rendering
podloom_player_html Modify the complete player HTML output
podloom_cache_duration Customize cache duration per feed
podloom_transcript_rate_limit Adjust transcript proxy rate limiting
podloom_transcript_max_size Set maximum transcript file size

Example: Modify Episode Title

add_filter('podloom_episode_data', function($episode, $feed_id, $attributes) {
    if (!empty($episode['title'])) {
        $episode['title'] = 'Episode: ' . $episode['title'];
    }
    return $episode;
}, 10, 3);

Example: Custom Cache Duration

add_filter('podloom_cache_duration', function($duration, $feed_id, $feed) {
    // Shorter cache for daily news podcasts
    if (strpos($feed['url'], 'daily-news') !== false) {
        return HOUR_IN_SECONDS;
    }
    return $duration;
}, 10, 3);
Full Reference: See the complete Filters Reference on GitHub.

Still need help?

Ask questions in Discussions or report bugs in Issues on GitHub.