private static function simulate_temporary_episode_slug($slug) { add_filter('podlove_file_url_template', function ($template) use($slug) { return str_replace('%episode_slug%', \Podlove\slugify($slug), $template); }); }
public function set_title($title) { $this->title = $title; $this->slug = strtolower(\Podlove\slugify($title)); }
/** * Return real file URL * * For public facing URLs, use ::get_public_file_url(). * * @return string */ public function get_file_url() { return $this->with_blog_scope(function () { $podcast = Podcast::get(); $episode = $this->episode(); $episode_asset = EpisodeAsset::find_by_id($this->episode_asset_id); $file_type = FileType::find_by_id($episode_asset->file_type_id); if (!$episode_asset || !$file_type || !$episode) { return ''; } $template = $podcast->get_url_template(); $template = apply_filters('podlove_file_url_template', $template); $template = str_replace('%media_file_base_url%', trailingslashit($podcast->media_file_base_uri), $template); $template = str_replace('%episode_slug%', \Podlove\slugify($episode->slug), $template); $template = str_replace('%suffix%', $episode_asset->suffix, $template); $template = str_replace('%format_extension%', $file_type->extension, $template); return trim($template); }); }