將外部播客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。
  • Analytics(分析) –我個人建議您提供類似的服務 FeedPress 您可以在其中自定義Feed,並對其使用情況進行集中跟踪,這超出了許多服務所提供的範圍。 FeedPress還允許您自動發佈到社交渠道,這是一個非常酷的功能!

想看看它是否正常工作? 您可以使用 演員表Feed驗證器 驗證提要!

3 個評論

  1. 1

    我花了2 1/2天的時間在網上搜索,發現我認為每個WordPress播客都必須要做的事情–在其wordpress網站上為其第3方託管的播客託管RSS feed。

    所以謝謝! 當然,您的文章提出了一個問題:為什麼這不是WordPress插件呢? 我找到的最接近的是WP RSS聚合器,但是它完全重寫了XML並破壞了RSS。

  2. 2

    Hi
    我已經設置好了WordPress網站,以完全按照所示方式重新發布RSS,而且效果很好,我自己控制它並在播客過程中邁出了一大步非常好。

    但是,由於我的播客主機生成RSS XML的方式,我有一個問題–它會為每個情節自動生成一個Web鏈接,該鏈接指向播客主機的免費網站上我不使用的HTML頁面。

    就像是 <rss2><channel><item><link></link> 如果降價有效。 或“ rss2>頻道>項目>鏈接”

    Apple Podcast使用此XML數據在每個情節的頁面上顯示一個大鍊接。 但是我不使用播客主機(Podbeans)中的免費網站。 我需要它指向我自己的網站-由我控制的RSS feed託管於此。

    您是否認為可以操縱傳入的XML將其中的鏈接從podbeans.com更改為my-website.com?

你覺得呢?

本網站使用Akismet來減少垃圾郵件。 了解您的評論如何處理.