Статьи

Руководство разработчика по каналам в WordPress

Фид — это формат данных, используемый для предоставления пользователям часто обновляемого контента. Считыватели каналов используются для чтения каналов, что позволяет пользователям подписываться на них. Создание набора каналов, доступных в одном месте, называется агрегацией, которая выполняется агрегатором каналов.

WordPress Feeds

В этом уроке я покажу вам различные типы форматов каналов, предоставляемых WordPress, и способы их доступа с акцентом на их программную настройку.

Форматы каналов, поддерживаемые WordPress

WordPress поддерживает четыре популярных формата каналов: RDF, RSS 0.92, RSS 2.0 и Atom. RSS 2.0 является самым популярным форматом каналов и поддерживается почти всеми читателями каналов.

URL-пути для этих каналов:

 http://example.com/?feed=rss
 http://example.com/?feed=rss2
 http://example.com/?feed=rdf
 http://example.com/?feed=atom

Вам не нужно жестко их кодировать в свои темы или плагины, вы можете просто использовать следующие функции для получения URL-адресов различных форматов каналов:

<?php 
    bloginfo('rdf_url'); 
    bloginfo('rss_url'); 
    bloginfo('rss2_url'); 
    bloginfo('atom_url');
?>

Эти URL-адреса получают последние «сообщения» сайта.

WordPress Последние комментарии

Вышеуказанные пути предоставляют последние сообщения сайта. Чтобы найти последние комментарии, нам нужно использовать путь к комментариям:

 http://example.com/?feed=comments-rss2

Если вы не хотите жестко его кодировать, вы можете использовать эту функцию для получения ленты комментариев:

 <?php
    bloginfo('comments_rss2_url');

WordPress также предоставляет ленту комментариев для одного поста. Чтобы найти последние комментарии к конкретному сообщению, путь подачи:

 http://example.com/?p=id&feed=rss2

Опять же, если вы не хотите жестко его кодировать, вы можете использовать эту функцию для его извлечения:

 <?php
    post_comments_feed_link('link_text', 'post_id', 'rss2' );

Подача категорий WordPress

WordPress предоставляет канал для каждой категории. Путь подачи для отдельной категории или нескольких категорий:

 http://www.example.com/?cat=id1,id2&feed=rss2

Эту функцию можно использовать для получения URL-адреса канала для одной или нескольких категорий с помощью следующего:

 <?php
    get_category_feed_link('id1', 'rss2');

Аналогичным образом вы также можете получить URL-адрес канала для тега или нескольких тегов.

WordPress Автор Лента

WordPress также предоставляет ленту для последних сообщений автора. Это полезно, если пользователь хочет подписаться на определенного автора через канал.

Путь URL-адреса авторского канала может быть создан с использованием приведенного ниже кода:

 <?php 
    echo '<a href="' . get_author_link(0, $authordata->ID, $authordata->user_nicename) . 'feed/">' . the_author($idmode, false) . '</a>';

Примечание. WordPress не предоставляет никаких встроенных функций для получения URL-адреса канала автора.

WordPress Search Feed

WordPress также может получить канал для поискового запроса. Вот путь URL фида для поискового запроса:

 http://example.com/?s=sitepoint&feed=rss2

Проверить запрос фида

В вашей теме или плагине вы можете проверить, является ли запрос запросом фида, используя следующий код:

 <?php
    if(is_feed())
    {
        echo "Feed Request";
    }

Здесь мы используем is_feed() Если да, то он возвращает истину.

WordPress внутренне использует встроенный шаблон канала для отображения каналов. Используя действие do_feed

Удалить каналы

Если вы не хотите предоставлять фиды на своем сайте, используйте код ниже, чтобы отключить все из них:

 <?php

    function disable_feed() 
    {
        wp_die(__("Feed Disabled"));
    }
    add_action('do_feed',      'disable_feed', 1);
    add_action('do_feed_rdf',  'disable_feed', 1);
    add_action('do_feed_rss',  'disable_feed', 1);
    add_action('do_feed_rss2', 'disable_feed', 1);
    add_action('do_feed_atom', 'disable_feed', 1);

Фильтрация содержимого канала

Чтобы отфильтровать описание поста только в ленте, мы можем использовать фильтр the_content_feed Вот пример того, как его использовать:

 function feed_word_count($content)
{
   $content .= 'Total '.str_word_count($content).' words';
   return $content;
}

add_filter("the_content_feed", "feed_word_count");

В WordPress 3.0 и более поздних версиях есть функция поддержки тем для добавления URL фидов в тег head Если вы разработчик темы WordPress, добавьте эту строку кода в файл function.php

 add_theme_support( 'automatic-feed-links' );

Перенаправление каналов WordPress на каналы FeedBurner

Многие администраторы сайтов предпочитают предоставлять свои каналы с помощью FeedBurner (или других сторонних сервисов). Это позволяет им отслеживать свои каналы и количество подписчиков.

Грязный способ сделать это, добавив приведенный ниже код в файл .htaccess

 <IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
 RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
 RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/name [R=302,NC,L]
</IfModule>

Этот код перенаправляет запросы на ленту последних сообщений в FeedBurner.

Если вы не решаетесь прикоснуться к вашему файлу .htaccess, то вы можете использовать плагин FeedBurner, чтобы сделать то же самое.

Дополнительные действия и фильтры

WordPress предоставляет гораздо больше действий и фильтров для настройки наших каналов. Мы рассмотрели только некоторые из наиболее важных и полезных.

Вы можете найти много других действий, связанных с фидом в WordPress Action Reference, а фильтры — в WordPress Filter Reference .

Вывод

Многие пользователи WordPress предпочитают подписки на фиды, а не на электронную почту или социальные подписки. Поскольку агрегаторы каналов теперь доступны для всех платформ, рекомендуется предоставить пользователям возможность подписываться через каналы, причем предпочтительным форматом является RSS 2.0. Вы также должны отображать ленту авторов и комментарии, если у вас есть комментарии, а не только лента последних сообщений.

Дайте мне знать ваш опыт с лентами WordPress ниже.