WordPress как на ладони
wordpress jino

add_feed() WP 2.1.0

Добавляет новый тип RSS ленты наподобие /atom1/.

Функция добавляет правила перезаписи (ЧПУ) и регистрирует хук на основе указанной функции фида.

Хуков нет.

Возвращает

Строку. Имя хука созданного фида.

Использование

add_feed( $feedname, $callable );
$feedname(string)
Имя (слаг) новой RSS ленты.
$callable(callable)
Колбек выводящий разметку фида.

Примеры

#1 Создание собственной RSS ленты

<?php

add_action( 'init', function () {

add_feed( 'my_feed', 'feed_markup' );
function feed_markup() {
	do_action( 'my_before_feed' );
	header( 'Content-Type: ' . feed_content_type( 'rss' ) . '; charset=' . get_option( 'blog_charset' ), true );
	status_header( 200 );
	echo '<?xml version="1.0" encoding="UTF-8"?>';
	?>

	<rss version="2.0"
		 xmlns:content="http://purl.org/rss/1.0/modules/content/"
		 xmlns:wfw="http://wellformedweb.org/CommentAPI/"
		 xmlns:dc="http://purl.org/dc/elements/1.1/"
		 xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		 xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
		<channel>
			<title>site.ru</title>
			<link>
			https://site.ru/my_feed</link>
			<description>My new feed</description>
			<lastBuildDate>Tue, 28 Feb 2017 13:00:41 +0000</lastBuildDate>
			<language>ru-RU</language>
			<sy:updatePeriod>hourly</sy:updatePeriod>
			<sy:updateFrequency>1</sy:updateFrequency>
			<item>
				<title>Hello world text</title>
				<pubDate>Tue, 28 Feb 2017 13:00:41 +0000</pubDate>
				<description><![CDATA[<p></p> Hello World </a> ]]></description>
			</item>
		</channel>
	</rss>
	<?php
	exit;
}

} );

Код add feed: wp-includes/rewrite.php VER 4.9.1

<?php
function add_feed( $feedname, $function ) {
	global $wp_rewrite;

	if ( ! in_array( $feedname, $wp_rewrite->feeds ) ) {
		$wp_rewrite->feeds[] = $feedname;
	}

	$hook = 'do_feed_' . $feedname;

	// Remove default function hook
	remove_action( $hook, $hook );

	add_action( $hook, $function, 10, 2 );

	return $hook;
}

Cвязанные функции

Из раздела: Фиды

petrozavodsky 706alkoweb.ru
Делаю веб, можно сказать работаю с WordPress. Временами живу в Краснодаре.
add_feed 6 комментариев
  • Galina

    А как можно получить перечень добавленных фидов?

  • campusboy1951 cайт: www.youtube.com/c/wpplus

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

    Чтобы его запустить, мне пришлось посадить его на хук init:

    add_action( 'init', function () {
    	// Тут код из примера
    }

    И, конечно, надо потом зайти в настройки ЧПУ и нажать кнопку "Сохранить", если это делалось всё "на горячую".

    1

Здравствуйте, !

Ваш комментарий