將外部播客Feed添加到WordPress網站的Feed中

WordPress播客Feed功能

在線流行的播客利用 WordPress 作為他們播客信息的發布平台,並發布有關每個節目的大量信息。 然而,他們實際上在外部播客託管引擎上託管播客本身。 它對網站訪問者來說非常無縫——但缺少一項用戶不可見但對谷歌等爬蟲可見的功能。

Google在其支持中指定了這一點:

此外,如果您將 RSS 提要與主頁相關聯,按名稱搜索您的播客的用戶可以在 Google 搜索上獲得您的播客的描述以及您節目的輪播。 如果您不提供鏈接的主頁,或者 Google 無法猜測您的主頁,您的劇集仍會出現在 Google 搜索結果中,但只會與來自同一主題的其他播客的劇集分組在一起。

谷歌 - 在Google上播客

 結合兩者,您可以在Google中獲得不錯的報導:

Google SERP上的播客

對該網站的爬網顯示了博客文章提要,但沒有實際的 播客Feed – 外部託管。 該公司希望保留其當前的博客提要,因此我們希望向該站點添加一個額外的提要。 就是這樣:

  1. 我們需要編寫一個 新飼料 在他們的WordPress主題中。
  2. 我們要 檢索並發布外部播客feed 在那個新的提要中。
  3. 我們要 在頭部添加鏈接 顯示新的提要URL的WordPress網站的頁面。
  4. 獎勵:我們需要清理新的播客提要 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 而您的播客源不是,您將遇到混合安全問題。 我強烈建議確保您的網站和播客託管都安全託管(在 HTTPS 地址,沒有錯誤)。
  • 聚合 – 我強烈建議使用這個特定領域的播客提要來聯合 Google、Apple、Spotify 和任何其他服務。 這樣做的好處是,您現在可以隨時更改播客主機,而不必更新每個服務的源供稿。
  • Analytics(分析) – 我個人建議提供類似的服務 FeedPress 您可以在其中自定義您的提要並對其使用情況進行集中跟踪,這超出了許多服務提供的範圍。 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來減少垃圾郵件。 了解您的評論如何處理.