Skip to main content

Episode

Title#

episode.title

Returns the episode title, if set, otherwise the post title. If you want to access the post title directly, use episode.post.post_title.

Subtitle#

episode.subtitle

Summary#

episode.summary

Number#

episode.number

Type#

episode.type

One of: full, trailer, bonus

Slug#

episode.slug

Post content#

episode.content

Podcast#

episode.podcast

Player#

episode.player

Web Player for the current episode. The player should not appear in feeds, so embed it like this:

{% if not is_feed() %}
{{ episode.player }}
{% endif %}

You can set a custom context for tracking:

{{ episode.player({context: 'landing-page'}) }}

Post publication date#

episode.publicationDate Uses WordPress datetime format by default or custom format: {{ episode.publicationDate.format('Y-m-d') }}

see datetime

Post recording date#

episode.recordingDate Uses WordPress datetime format by default or custom format: {{ episode.recordingDate.format('Y-m-d') }}

see datetime

Explicit status#

episode.explicit

yes, no or clean

URL#

episode.url

Duration Object#

episode.duration Useduration to display formatted hours, minutes and seconds. Alternatively, use the duration accessors for custom rendering.

see datetime

WordPress WP_Post object#

episode.post

Image#

episode.image

fallback: true or false. Should the podcast image be used if no episode image is available? Default: false

Example:#

{{ episode.image({fallback: true}).url }}

see image

Image URL#

episode.imageUrl

Image URL with fallback#

episode.imageUrlWithFallback

Total downloads#

episode.total_downloads Please note that this value is only updated hourly.

Example:#

{{ episode.total_downloads | number_format(0, ',', '.') }}

Meta value#

episode.meta

Access a single meta value

Meta values#

episode.metas

Access a list of meta values

Example:#

<ul>
{% for meta in episode.metas("mymetakey") %}
<li>{{ meta }}</li>
{% endfor %}
</ul>
{% for meta in episode.metas("mymetakey") %}
{{ meta }}{% if not loop.last %}, {% endif %}
{% endfor %}

Post Tags#

episode.tags

Access a list of post tags.

See http://codex.wordpress.org/Function_Reference/wp_get_object_terms#Argument_Options for a list of available argument options.

Example:#

{% for tag in episode.tags({order: "ASC", orderby: "count"}) %}
<a href="{{ tag.url }}">{{ tag.name }} ({{ tag.count }})</a>
{% endfor %}

see tag

Categories#

episode.categories

Access a list of episode categories. See http://codex.wordpress.org/Function_Reference/wp_get_object_terms#Argument_Options for a list of available argument options.

Requires the "Categories" module.

Example:#

{% for category in episode.categories({order: "ASC", orderby: "count"}) %}
<a href="{{ category.url }}">{{ category.name }} ({{ category.count }})</a>
{% endfor %}

see category

Files#

episode.files

List of episode files

see file

File#

episode.file

One episode file by asset name.

Example:#

<a href="{{ episode.file("pdf").publicUrl }}">Download episode PDF</a>

see file

Chapters#

episode.chapters List of episode chapters

see chapter

License#

episode.license

To render an HTML license, use {% include '@core/license.twig' %} for a license with fallback to the podcast license or {% include '@core/license.twig' with {'license': episode.license} %} for the episode license only.

see chapter

Contributors#

episode.contributors

List of episode contributors

Examples#

Iterating over a list of contributors

{% for contributor in episode.contributors %}
{{ contributor.name }}
{% if not loop.last %}, {% endif %}
{% endfor %}

Iterating over a grouped list of contributors

{% for contributorGroup in episode.contributors({groupby: "group"}) %}
<strong>{{ contributorGroup.group.title }}:</strong>
{% for contributor in contributorGroup.contributors %}
{{ contributor.name }}
{% if not loop.last %}, {% endif %}
{% endfor %}
{% endfor %}

Parameters#

  • id: Fetch one contributor by its id. Example: episode.contributors({id: 'james'}).name
  • group: group slug. If none is given, show all contributors.
  • role: role slug. If none is given, show all contributors.
  • groupby: group or role slug. Group by group or role. If used, the returned data is has another layer for the groups. See examples for more details.
  • order: Designates the ascending or descending order of the orderby parameter. Defaults to ASC.
    • ASC - ascending order from lowest to highest values (1, 2, 3; a, b, c).
    • DESC - descending order from highest to lowest values (3, 2, 1; c, b, a).
  • orderby: Sort contributors by parameter. Defaults to position.
    • position - Order by the contributors position in the episode.
    • comment - Order by the contributors comment in the episode.

Season#

episode.season

Get season for an episode

Related Episodes#

episode.relatedEpisodes

List of Related Episodes

Show#

episode.show

Examples#

This episode is part of the Show: {{ episode.show.title }} which deals with {{ episode.show.summary }}

Transcript#

episode.transcriptGrouped

Grouped by speaker

Examples#

<style type="text/css">
.ts-speaker { font-weight: bold; }
.ts-items { margin-left: 20px; }
.ts-time { font-size: small; color: #999; }
</style>
{% for group in episode.transcript %}
<div class="ts-group">
{% if group.contributor %}
<div class="ts-speaker">{{ group.contributor.name }}</div>
{% endif %}
<div class="ts-items">
{% for line in group.items %}
<span class="ts-time">{{ line.start }}&ndash;{{ line.end }}</span>
<div class="ts-content">{{ line.content }}</div>
{% endfor %}
</div>
</div>
{% endfor %}