将外部播客Feed添加到WordPress网站的Feed中

WordPress播客Feed功能

在线流行的播客利用 WordPress 作为其播客信息发布平台,以及发布有关每个节目的大量信息。 但是,他们实际上将播客本身托管在外部播客托管引擎上。 它对网站的访问者几乎是无缝的-但缺少一项功能对用户不可见,但对像Google这样的抓取工具可见。

Google在其支持中指定了这一点:

此外,如果您将RSS feed与首页相关联,则按名称搜索您的播客的用户可以在Google搜索上获得您的播客的描述以及剧集的轮播。 如果您没有提供链接的主页,或者Google无法猜测您的主页,则您的剧集仍可以出现在Google搜索结果中,但只能与同一主题的其他播客的剧集进行分组。

谷歌 - 在Google上播客

 结合两者,您可以在Google中获得不错的报道:

Google SERP上的播客

对该网站的爬网显示了博客文章提要,但未显示实际的 播客Feed –由外部托管。 该公司希望保留其当前的博客供稿,因此我们希望向该站点添加其他供稿。 就是这样:

  1. 我们需要编写一个 新饲料 在他们的WordPress主题中。
  2. 我们要 检索并发布外部播客feed 在那个新的提要中。
  3. 我们要 在头部添加链接 显示新的提要URL的WordPress网站的页面。
  4. 奖励:我们需要清理新的播客feed URL,因此我们不必依赖查询字符串并且可以 改写路径 在一个不错的网址中。

如何向WordPress添加新的Feed

在您的主题或(强烈建议)子主题的functions.php文件中,您将要添加新的提要,并告诉WordPress您将如何构建它。 关于此的一个注释…它将在以下位置发布新的供稿 https://yoursite.com/?feed=podcast

function add_podcast_feed() {
    add_feed( 'podcast', 'render_podcast_feed' );
}
add_action( 'init', 'add_podcast_feed' );

检索外部播客Feed并将其发布到WordPress Feed中

我们告诉WordPress,我们将使用 render_podcast_feed,因此我们现在要检索外部供稿(指定为https://yourexternalpodcast.com/feed/ 在以下功能中,并在请求时在WordPress中将其复制。 请注意…WordPress将缓存响应。

function render_podcast_feed() {
    header( 'Content-Type: application/rss+xml' );
    $podcast = 'https://yourexternalpodcast.com/feed/';
    
    $response = wp_remote_get( $podcast );
        try {
            $podcast_feed = $response['body'];

        } catch ( Exception $ex ) {
            $podcast_feed = null;
        } // end try/catch
 
    echo $podcast_feed;
} 

将您的新Feed重写为一个不错的URL

这是一些奖金。 还记得提要如何通过查询字符串发布吗? 我们可以在functions.php中添加一个重写规则,以一个好的URL替换掉它:

function podcast_feed_rewrite( $wp_rewrite ) {
    $feed_rules = array(
        'feed/podcast/' => 'index.php?feed=podcast'
    );

    $wp_rewrite->rules = $feed_rules + $wp_rewrite->rules;
}
add_filter( 'generate_rewrite_rules', 'podcast_feed_rewrite' );

现在,新的供稿发布在 https://yoursite.com/feed/podcast/

将链接添加到您的头脑中

最后一步是您要在WordPress网站的head标签内添加链接,以便爬网程序可以找到它。 在这种情况下,我们甚至希望将提要指定为列出的第一个(博客和评论提要上方),因此我们将优先级添加为1。您还需要更新链接中的标题,并确保它没有与网站上另一个供稿的标题不匹配:

function add_podcast_link_head() {
    $podcast_link = site_url().'/feed/podcast/';
    ?>
    <link rel="alternate" type="application/rss+xml" title="My Podcast Name" href="<?php echo $podcast_link; ?>"/>
    <?php
}
add_action('wp_head', 'add_podcast_link_head', 1);

您的新WordPress播客Feed

这种方法的优点在于,我们能够自我包含网站主题内的所有更改……无需其他模板文件或标题编辑等。几个重要的细节:

  • 永久链接 –将代码添加到 的functions.php,则需要在WordPress管理员中打开“设置”>“永久链接”。 这将刷新您的永久链接规则,以便我们现在为重写添加的代码得以实现。
  • 确保用户 –如果您的站点是SSL,而您的播客feed不是,则您将遇到混合安全性的问题。 我强烈建议确保您的网站和播客托管均已安全托管(在 HTTPS 地址,没有错误)。
  • 聚合 –我强烈建议您使用此特定于域的播客feed联合发布到Google,Apple,Spotify和任何其他服务。 这样做的好处是,您现在可以随时更改播客主机,而不必更新每个服务的源Feed。
  • 数据分析 –我个人建议您提供类似的服务 进料压力机 您可以在其中自定义Feed,并对其使用情况进行一些集中跟踪,这超出了许多服务所提供的范围。 FeedPress还允许您自动发布到社交渠道,这是一个非常酷的功能!

想看看它是否正常工作? 您可以使用 演员表Feed验证器 验证提要!

3条评论

  1. 1

    我花了 2 1/2 天的时间在网上搜索,找到了我认为每个 WordPress 播客必须要做的事情——在他们的 wordpress 网站上为他们的 3rd 方托管的播客托管 RSS 提要。

    所以谢谢! 当然,您的文章引出了一个问题:为什么这不是一个 WordPress 插件呢? 我找到的最接近的是 WP RSS Aggregator,但它完全重写了 XML 并破坏了 RSS。

  2. 2

    Hi
    我已经设置了我的 WordPress 网站,以完全按照所示重新发布我的 RSS,它运行良好,我自己控制它并在播客过程中迈出了一大步,这真是太好了。

    不过,由于我的播客主持人生成 RSS XML 的方式,我有一个问题——它会为每一集自动生成一个 Web 链接,该链接指向我不使用的播客主持人免费赠品网站上的 HTML 页面。

    就像是 <rss2><channel><item><link></link> 如果降价有效。 或“rss2>频道>项目>链接”

    Apple Podcast 使用此 XML 数据在其页面上为每一集显示一个大链接。 但我不使用我的播客主机 (Podbeans) 提供的免费赠品网站。 我需要它指向我自己的网站——托管我控制的 RSS 提要。

    您是否认为可以操纵传入的 XML 以将其中的链接从 podbeans.com 更改为 my-website.com?

你觉得呢?

本网站使用Akismet来减少垃圾邮件。 了解您的数据如何处理.