function override_feed_entry($hook, $podcast, $feed, $format) { add_action($hook, function () use($podcast, $feed, $format) { global $post; $cache = \Podlove\Cache\TemplateCache::get_instance(); echo $cache->cache_for('feed_item_' . $feed->slug . '_' . $post->ID, function () use($podcast, $feed, $format, $post) { $xml = ""; $episode = Model\Episode::find_one_by_post_id($post->ID); $asset = $feed->episode_asset(); $file = Model\MediaFile::find_by_episode_id_and_episode_asset_id($episode->id, $asset->id); $asset_assignment = Model\AssetAssignment::get_instance(); if (!$file) { return; } $enclosure_file_size = $file->size; $cover_art_url = ""; if ($cover_art = $episode->cover_art()) { $cover_art_url = $cover_art->url(); } if (isset($_REQUEST['tracking']) && $_REQUEST['tracking'] == 'no') { $enclosure_url = $episode->enclosure_url($feed->episode_asset(), null, null); } else { $enclosure_url = $episode->enclosure_url($feed->episode_asset(), "feed", $feed->slug); } $deep_link = Model\Feed::get_link_tag(array('prefix' => 'atom', 'rel' => 'http://podlove.org/deep-link', 'type' => '', 'title' => '', 'href' => get_permalink() . "#")); $xml .= apply_filters('podlove_deep_link', $deep_link, $feed); $xml .= apply_filters('podlove_feed_enclosure', '', $enclosure_url, $enclosure_file_size, $format->mime_type, $file); $duration = sprintf('<itunes:duration>%s</itunes:duration>', $episode->get_duration('HH:MM:SS')); $xml .= apply_filters('podlove_feed_itunes_duration', $duration); $author = apply_filters('podlove_feed_content', $podcast->author_name); $author = sprintf('<itunes:author>%s</itunes:author>', $author); $xml .= apply_filters('podlove_feed_itunes_author', $author); $subtitle = apply_filters('podlove_feed_content', \Podlove\PHP\escape_shortcodes(strip_tags($episode->subtitle))); $subtitle = sprintf('<itunes:subtitle>%s</itunes:subtitle>', $subtitle); $xml .= apply_filters('podlove_feed_itunes_subtitle', $subtitle); $summary = apply_filters('podlove_feed_content', \Podlove\PHP\escape_shortcodes(strip_tags($episode->summary))); $summary = sprintf('<itunes:summary>%s</itunes:summary>', $summary); $xml .= apply_filters('podlove_feed_itunes_summary', $summary); if (\Podlove\get_setting('metadata', 'enable_episode_explicit')) { $itunes_explicit = apply_filters('podlove_feed_content', $episode->explicit_text()); $itunes_explicit = sprintf('<itunes:explicit>%s</itunes:explicit>', $itunes_explicit); $xml .= apply_filters('podlove_feed_itunes_explicit', $itunes_explicit); } if ($cover_art_url) { $cover_art = sprintf('<itunes:image href="%s" />', $cover_art_url); } else { $cover_art = ''; } $xml .= apply_filters('podlove_feed_itunes_image', $cover_art); if ($feed->embed_content_encoded) { add_filter('the_content_feed', function ($content, $feed_type) { return preg_replace('#<style(.*?)>(.*?)</style>#is', '', $content); }, 10, 2); $content_encoded = '<content:encoded><![CDATA[' . get_the_content_feed('rss2') . ']]></content:encoded>'; $xml .= apply_filters('podlove_feed_content_encoded', $content_encoded); } ob_start(); do_action('podlove_append_to_feed_entry', $podcast, $episode, $feed, $format); $xml .= ob_get_contents(); ob_end_clean(); return $xml; }, 15 * MINUTE_IN_SECONDS); }, 11); }
public function render_link() { echo Model\Feed::get_link_tag(array('prefix' => 'atom', 'rel' => 'http://podlove.org/simple-chapters', 'type' => '', 'title' => '', 'href' => get_permalink() . "?chapters_format=psc")); }