Как создавать собственные RSS-каналы в WordPress

WordPress поставляется со встроенными RSS-каналами по умолчанию. Вы можете настроить каналы по умолчанию, добавив пользовательский контент в свои RSS-каналы или даже добавив миниатюры сообщений в свои RSS-каналы. Для большинства пользователей достаточно каналов RSS и Atom по умолчанию, но вы можете создать собственный канал RSS для доставки содержимого определенного типа. В этой статье мы покажем вам, как создавать собственные RSS-каналы в WordPress..


Обратите внимание, что это руководство не предназначено для пользователей WordPress начального уровня. Если вы новичок и все еще хотите попробовать его, сделайте это при локальной установке.

Как всегда, вы должны создать полную резервную копию вашего сайта WordPress, прежде чем вносить какие-либо серьезные изменения в живой сайт.

Сказав это, давайте начнем с вашего первого пользовательского RSS-канала в WordPress.

Предположим, вы хотите создать новый канал RSS, который отображает только следующую информацию:

  • заглавие
  • Ссылка на сайт
  • Дата публикации
  • автор
  • выдержка

Первое, что вам нужно сделать, это создать новый канал RSS в файле functions.php вашей темы или в плагине для конкретного сайта:

add_action (‘init’, ‘customRSS’);
function customRSS () {
add_feed (‘feedname’, ‘customRSSFunc’);
}

Приведенный выше код запускает функцию customRSS, которая добавляет канал. Функция add_feed имеет два аргумента, имя канала и функцию обратного вызова. Имя канала будет составлять ваш новый URL-адрес канала yourdomain.com/feed/feedname, и будет вызываться функция обратного вызова для фактического создания канала. Запишите название канала, так как оно понадобится вам позже..

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

function customRSSFunc () {
get_template_part (‘rss’, ‘feedname’);
}

Приведенный выше код использует функцию get_template_part для ссылки на отдельный файл шаблона, однако вы также можете поместить код RSS прямо в функцию. Используя get_template_part, мы можем сохранить функциональность отдельно от макета. Функция get_template_part имеет два аргумента, slug и name, которые будут искать файл шаблона с именем в следующем формате, начиная с файла сверху (если он не находит первый, он переходит ко второму , и так далее):

  1. WP-содержание / темы / ребенок / Новости-feedname.php
  2. WP-содержание / темы / родитель / Новости-feedname.php
  3. WP-содержание / темы / ребенок / rss.php
  4. WP-содержание / темы / родитель / rss.php

Для целей данного руководства лучше всего установить slug для типа создаваемого вами канала (в данном случае: rss), а имя для имени канала, настроенного ранее в.

После того как вы сказали WordPress искать шаблон канала, вам нужно его создать. Приведенный ниже код создаст макет для канала с информацией, которую мы перечислили ранее. Сохраните этот файл в папке вашей темы как файл шаблона slug-name.php, настроенный в функции get_template_part.

<?PHP
/ **
* Имя шаблона: Пользовательский шаблон RSS – Имя канала
* /
$ postCount = 5; // Количество постов для показа в ленте
$ posts = query_posts (‘showposts =’. $ postCount);
header (‘Content-Type:’ .feed_content_type (‘rss-http’). ‘; charset =’. get_option (‘blog_charset’), true);
эхо<?XML версия ="1,0" кодирование ="’.Get_option ( ‘blog_charset’).’"?”>«;
?>
>

<?php bloginfo_rss (‘name’); ?> – Подача
" отн ="сам" тип ="Приложение / Новости + XML" />
<?php bloginfo_rss (‘url’) ?>
<?php bloginfo_rss (‘описание’) ?>
<?php echo mysql2date (‘D, d M Y H: i: s +0000’, get_lastpostmodified (‘GMT’), false); ?>
<?php echo get_option (‘rss_language’); ?>
<?php echo apply_filters (‘rss_update_period’, ‘hourly’); ?>
<?php echo apply_filters (‘rss_update_frequency’, ‘1’); ?>
<?php do_action (‘rss2_head’); ?>
<?php while (have_posts ()): the_post (); ?>

<?php the_title_rss (); ?>
<?php the_permalink_rss (); ?>
<?php echo mysql2date (‘D, d M Y H: i: s +0000’, get_post_time (‘Y-m-d H: i: s’, true), false); ?>
<?php the_author (); ?>
<?php the_guid (); ?>

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    [ware_item id=87][/ware_item]
    Like this post? Please share to your friends:
    Adblock
    detector
    map