Добавьте внешний канал подкастов в каналы вашего сайта WordPress

Функции ленты подкастов WordPress

Популярный онлайн-подкаст использует WordPress в качестве платформы для публикации информации о своих подкастах, а также для публикации тонны информации о каждом шоу. Однако на самом деле они размещают сам подкаст на внешнем хостинге подкастов. Это довольно удобно для посетителей сайта, но отсутствует одна функция, невидимая для пользователей, но видимая для поисковых роботов, таких как Google.

Google указывает это в своей поддержке:

Кроме того, если вы свяжете свой RSS-канал с домашней страницей, пользователи, выполняющие поиск вашего подкаста по имени, могут получить описание вашего подкаста, а также карусель эпизодов вашего шоу в поиске Google. Если вы не предоставили связанную домашнюю страницу или Google не может угадать вашу домашнюю страницу, ваши выпуски все равно могут отображаться в результатах поиска Google, но только сгруппированные с выпусками из других подкастов по той же теме.

Google - Загрузите свой подкаст в Google

 С этими двумя связанными вы можете получить хорошее освещение в Google:

Подкасты в Google SERP

При сканировании сайта обнаруживается лента сообщений в блоге, но не фактические канал подкаста - который размещается на внешнем сервере. Компания хочет сохранить текущую ленту блога, поэтому мы хотим добавить на сайт дополнительную ленту. Вот как:

  1. Нам нужно закодировать Новый канал в своей теме WordPress.
  2. Нам надо получить и опубликовать внешний канал подкастов в этом новом фиде.
  3. Нам надо добавить ссылку в голову сайта WordPress, на котором отображается новый URL-адрес канала.
  4. Бонус: нам нужно очистить новый URL-адрес канала подкаста, чтобы нам не приходилось полагаться на строки запроса и переписать путь в красивом URL.

Как добавить новую ленту в WordPress

В файле functions.php вашей темы или (настоятельно рекомендуется) дочерней темы вы захотите добавить новый канал и сообщить WordPress, как вы собираетесь его создать. Одно примечание по этому поводу ... он опубликует новый канал по адресу https://yoursite.com/?feed=podcast

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

Получите внешний канал подкастов и опубликуйте его в ленте WordPress

Мы сказали 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;
} 

Перепишите свой новый канал на хороший 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, чтобы поисковые роботы могли ее найти. В этом случае мы даже хотим обозначить канал как первый в списке (над фидами блога и комментариев), поэтому мы добавляем приоритет 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

Преимущество этого метода в том, что мы смогли самостоятельно содержать все изменения в теме сайта… никаких дополнительных файлов шаблонов, редактирования заголовков и т. Д. Пара важных деталей:

  • Постоянные ссылки - Как только вы добавите код в functions.php, вам нужно открыть Настройки> Постоянные ссылки в админке WordPress. Это обновит ваши правила постоянных ссылок, так что код, который мы добавили для перезаписи, теперь реализован.
  • Безопасность - Если ваш сайт использует SSL, а ваш подкаст - нет, вы столкнетесь с проблемами со смешанной безопасностью. Я настоятельно рекомендую обеспечить безопасный хостинг как вашего сайта, так и хостинга подкастов (на протокол HTTPS адрес без ошибок).
  • Синдикация - Я настоятельно рекомендую использовать этот подкаст-канал для домена для распространения в Google, Apple, Spotify и другие службы. Преимущество здесь в том, что теперь вы можете изменить хост подкаста, когда захотите, и вам не придется обновлять исходный канал каждой службы.
  • Аналитика - Я лично рекомендую такую ​​услугу, как FeedPress где вы можете настроить свой канал и получить централизованное отслеживание его использования, помимо того, что предоставляют многие службы. FeedPress также позволяет автоматизировать публикацию в социальных сетях, это очень крутая функция!

Хотите узнать, работает ли он? Вы можете использовать Валидатор литых кормов проверить подачу!

3 комментариев

  1. 1

    Мне потребовалось 2 1/2 дня поиска в сети, чтобы найти то, что, как я думал, должен сделать каждый подкастер WordPress — разместить RSS-канал для своего подкаста, размещенного на стороннем сервере, на своем сайте WordPress.

    Так что спасибо тебе! Конечно, ваша статья вызывает вопрос: почему это еще не плагин для WordPress? Ближайшим из найденных мной инструментов был WP RSS Aggregator, но он полностью переписал XML и сломал RSS.

  2. 2

    Hi
    Я настроил свой сайт WordPress для повторной публикации моего RSS точно так, как показано, и это работает хорошо, здорово контролировать это самому и сделать большой шаг в сторону от процесса подкастинга.

    Однако у меня есть вопрос, связанный с тем, как мой хост подкастов создает RSS XML — он автоматически генерирует веб-ссылку для каждого эпизода, которая указывает на HTML-страницу на бесплатном веб-сайте хоста подкастинга, который я не использую.

    Что-то вроде <rss2><channel><item><link></link> если уценка работает. Или «rss2>канал>элемент>ссылка»

    Apple Podcast использует эти данные XML для отображения большой ссылки на своей странице для каждого эпизода. Но я не пользуюсь бесплатным веб-сайтом моего хоста подкастинга (Podbeans). Мне нужно, чтобы он указывал на мой собственный веб-сайт, где размещена RSS-лента, которой я управляю.

    Как вы думаете, можно ли манипулировать входящим XML, чтобы изменить в нем ссылки с podbeans.com на my-website.com?

    • 3

      Это можно сделать, но вам также придется написать код для запроса реальных размещенных файлов (например, MP3). Честно говоря, я бы не стал этого делать, так как большинство веб-хостов не оптимизированы для загрузки больших файлов, необходимых для подкастов.

Как вы думаете?

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются ваши данные комментариев.