Release 3.5.0

Breaking Change

Removes two expert settings:

  • “Permalink structure for episodes” and
  • “Episode pages”

These settings allowed to define custom URL structures for episodes and the episode archive.
However they have caused trouble for a long time (see #1038)
and the only viable way out seems to remove them.

How does that affect you?

If you have never touched these settings, feel free to shrug, smile and move on.

If you are using these settings, I encourage you to consider not using them as they are mostly of cosmetic nature.
Should you however prefer to keep everything as is (including the known bugs of erratically broken permalinks / URLs), you can
enable the settings back with a single line of code in your wp-config.php:


// this has to go _above_ the following line:

// That's all, stop editing! Happy publishing.

Experimental: Full-Page Podlove Templates

If you want to create a 100% custom page based on an episode but without all the WordPress theme around, this is for you.
Possible use case: A dedicated page to print the episode transcript.

  1. create a new Podlove Template, for example page-episode-transcipt
  2. Write that transcript as a full HTML page. That means it starts with <!doctype html><html> and ends with </html>!
  3. Append ?podlove_template_page=page-episode-transcipt to your public episode URL. For example if your episode is, then open

Very simple example template:

    <!doctype html>

      <meta charset="utf-8">
      <title>Transcript | {{ episode.title }} | {{ podcast.title }}</title>
      <meta name="viewport" content="width=device-width, initial-scale=1">


        Here's the transcript for podcast <strong>{{ podcast.title }}</strong> episode <strong>{{ episode.title }}</strong>:





Shownotes Module

  • provide website screenshot as fallback when no sharing image is available (requires PLUS token)
  • show images
  • show image in edit view
  • when importing, show all entries
  • show import progress when unfurling
  • fix osf importer
  • fix encoding issue when importing from HTML


  • update database for podcast user agents – notably includes classification of Apple Watch downloads as bot #1203
  • transcript: add some basic info about podcast and episode into webvtt as a note
  • analytics: add hook podlove_useragent_opawg_data to add custom user agent detection
  • Podlove Templates: add dataUri method to images. Takes same arguments as url but returns a data uri. Useful if you want to generate a self-contained HTML page. If you’re not sure, better use url.
  • fix: transcripts with trailing newlines don’t confuse the importer
  • fix: don’t count contributors multiple times if they have multiple contributions in an episode (#1200)
  • fix: calling wptexturize too early (#1194)
1 Like

Hey, thanks for the update!! Especially love the feature to show the print of the episode transcript.

I would like to add the link to the transcript in the episode template. The only problem is that some older episodes don’t have a transcript. Can I check if that assets exists? Couldn’t find it in the documentation. Thanks!

{% if episode.transcript %} works well for me.

1 Like

This will break URLs like which might be the standard for many. They will now look like e.g. This is unfortunate for e.g. sharing URLs. Those URLs were way prettier. All outside links to those episodes will be broken. All spoken references in podcast episodes won’t be valid anymore.

@ericteubert: Should there be a ' symbol instead of a in your wp-config.php workaround?
The mentioned workaround does not work for me either way though. Additionally, one shall not add this code to the bottom of the wp-config.php. Adding it further up top did work. :+1:

I think Discourse inserted smart quotes there by accident, fixed it.

Right. I’m trying to address this in 3.5.1 which adds an option for specifically this usecase. Like you’re saying, it’s very common, and I don’t want the standard solution to be to use the workaround. Let’s see if that works as expected. At least the code is much simpler than for the legacy options.

CleanShot 2021-04-14 at 22.21.50@2x

1 Like

Thanks a lot for the update. I agree that the (deprecated) workaround should probably not become the standard.

I just

  1. deleted the workaround code in my wp-config.php,
  2. updated to 3.5.1 and
  3. activated the new “Simple Episode Permalink” setting.

This did change my URLs back to in my backend. That’s nice, but:



Firefox on iOS:

Now I’m getting that redirect problem all the time for all episode pages. :confused:

And even the long version ( or /podcast/name) doesn’t work, but in a different way (page is loading):

Maybe it’s my configuration, but 3.5.1 kind of made things worse.

I’ve now deactivated this new setting. This leads to a URL structure like That’s working.

Worked on my machine :smirk:

I’ll have another look tonight.

1 Like