Voeg een externe podcastfeed toe aan de feeds van uw WordPress-site

WordPress Podcast Feed-functies

Een populaire podcast maakt online gebruik van WordPress als hun publicatieplatform voor de informatie over hun podcast en het publiceren van een heleboel informatie over elke show. Ze hosten de podcast zelf echter in feite op een externe podcast-hosting-engine. Het is vrij naadloos voor de bezoekers van de site, maar mist één functie die onzichtbaar is voor gebruikers, maar zichtbaar voor crawlers zoals Google.

Google specificeert dit in hun ondersteuning:

Als u uw RSS-feed aan een startpagina koppelt, kunnen gebruikers die op naam naar uw podcast zoeken, ook een beschrijving van uw podcast krijgen, evenals een carrousel met afleveringen voor uw show op Google Zoeken. Als u geen gekoppelde startpagina opgeeft, of Google uw startpagina niet kan raden, kunnen uw afleveringen nog steeds worden weergegeven in de zoekresultaten van Google, maar alleen gegroepeerd met afleveringen van andere podcasts over hetzelfde onderwerp.

Google - Download je podcast op Google

 Met de twee verbonden, kunt u een mooie dekking krijgen in Google:

Podcasts op Google SERP

Het crawlen van de site onthult een blogpostfeed, maar niet de werkelijke podcast-feed - die extern wordt gehost. Het bedrijf wil zijn huidige blogfeed behouden, dus we willen een extra feed aan de site toevoegen. Hier is hoe:

  1. We moeten een nieuwe feed binnen hun WordPress-thema.
  2. We moeten de externe podcastfeed ophalen en publiceren in die nieuwe feed.
  3. We moeten voeg een link in het hoofd toe van de WordPress-site die de nieuwe feed-URL weergeeft.
  4. Bonus: we moeten de nieuwe podcast-feed-URL opschonen, zodat we niet afhankelijk zijn van querystrings en kunnen herschrijf het pad in een mooie URL.

Hoe u een nieuwe feed aan WordPress toevoegt

Binnen je thema of (sterk aanbevolen) child theme's functions.php-bestand, wil je de nieuwe feed toevoegen en WordPress vertellen hoe je het gaat bouwen. Een opmerking hierover ... het zal de nieuwe feed publiceren op https://yoursite.com/?feed=podcast

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

Haal een externe podcast-feed op en publiceer deze in een WordPress-feed

We vertelden WordPress dat we de podcast zouden renderen met render_podcast_feed, dus we willen nu de externe feed ophalen (aangeduid als https: //yourexternalpodcast.com/feed/ in de onderstaande functie en dupliceer deze binnen WordPress op het moment van de aanvraag. Een opmerking ... WordPress zal het antwoord in de cache opslaan.

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;
} 

Herschrijf uw nieuwe feed naar een mooie URL

Hier is een kleine bonus. Weet je nog hoe de feed wordt gepubliceerd met een querystring? We kunnen een herschrijfregel toevoegen aan functions.php om dat uit te wisselen met een mooie 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' );

Nu is de nieuwe feed gepubliceerd op https://yoursite.com/feed/podcast/

Voeg een link toe aan de feed In Your Head

De laatste stap is dat u een link wilt toevoegen binnen de head-tags van uw WordPress-site, zodat crawlers deze kunnen vinden. In dit geval willen we zelfs de feed aanwijzen als de eerste die wordt vermeld (boven de blog en reactiefeeds), dus we voegen prioriteit 1 toe. U wilt ook de titel in de link bijwerken en ervoor zorgen dat dit niet het geval is. komt niet overeen met de titel van een andere feed op de site:

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);

Uw nieuwe WordPress Podcast-feed

Het leuke van deze methode is dat we in staat waren om alle wijzigingen binnen het sitethema zelf te bevatten ... geen extra sjabloonbestanden of het bewerken van headers, enz. Een paar belangrijke details:

  • Permalinks - Zodra u de code toevoegt aan functions.php, je moet Instellingen> Permalinks openen in WordPress admin. Dat zal je permalink-regels vernieuwen, zodat de code die we hebben toegevoegd voor het herschrijven nu is geïmplementeerd.
  • Beveiliging - Als uw site SSL is en uw podcastfeed niet, zult u problemen tegenkomen met gemengde beveiliging. Ik raad u ten zeerste aan ervoor te zorgen dat zowel uw site als uw podcast-hosting veilig wordt gehost (op een https adres zonder fouten).
  • Syndication - Ik zou het ten zeerste aanbevelen om deze domeinspecifieke podcast-feed te gebruiken voor syndicatie naar Google, Apple, Spotify en elke andere service. Het voordeel hiervan is dat u nu uw podcasthost kunt wijzigen wanneer u maar wilt en dat u de bronfeed van elke service niet hoeft bij te werken.
  • Analyse - Ik zou persoonlijk een service aanraden zoals FeedPress waar u uw feed kunt aanpassen en wat gecentraliseerde tracking van het gebruik kunt krijgen, naast wat veel services bieden. Met FeedPress kun je ook het publiceren naar je sociale kanalen automatiseren, een erg coole functie!

Wil je zien of het werkt? U kunt de Cast-feedvalidator om de feed te verifiëren!

3 reacties

  1. 1

    Het kostte me 2 1/2 dag zoeken op het net om iets te vinden waarvan ik dacht dat elke WordPress-podcaster het zou willen doen - de RSS-feed voor hun door derden gehoste podcast hosten op hun WordPress-site.

    Dus dankjewel! Natuurlijk roept je artikel de vraag op: waarom is dit niet al een WordPress-plug-in? De dichtstbijzijnde die ik vond was WP RSS Aggregator, maar deze herschreef de XML volledig en brak de RSS.

  2. 2

    Hi
    Ik heb mijn WordPress-site ingesteld om mijn RSS opnieuw te publiceren, precies zoals weergegeven, en het werkt goed, het is geweldig om het zelf te beheren en een grote stap uit het podcasting-proces te zetten.

    Ik heb echter een vraag, vanwege de manier waarop mijn podcasting-host de RSS-XML produceert - het genereert automatisch een weblink voor elke aflevering die verwijst naar de HTML-pagina op de freebie-website van de podcasting-host die ik niet gebruik.

    Zoiets als <rss2><channel><item><link></link> als de prijsverlaging werkt. Of "rss2> kanaal> item> link"

    Apple Podcast gebruikt deze XML-gegevens om voor elke aflevering een grote link op zijn pagina weer te geven. Maar ik gebruik die gratis website van mijn podcasting-host (Podbeans) niet. Ik heb het nodig om naar mijn eigen website te verwijzen - waar de RSS-feed die ik beheer, wordt gehost.

    Denk je dat het mogelijk is om de inkomende XML te manipuleren om de links erin te veranderen van podbeans.com naar my-website.com?

    • 3

      Het is mogelijk om dit te doen, maar je moet ook code schrijven om de daadwerkelijke gehoste bestanden (zoals de mp3) op te vragen. Ik zou dit eerlijk gezegd niet doen, omdat de meeste webhosts niet zijn geoptimaliseerd voor de grote bestandsdownloads die nodig zijn met podcasts.

Wat denk je?

Deze site gebruikt Akismet om spam te verminderen. Ontdek hoe uw reactiegegevens worden verwerkt.