Добавляем контент и полностью управляем лентой RSS в WordPress. Эпизод 1

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

В прошлой статье мы рассказали вы можете управлять футером ленты RSS в WordPress с помощью известного плагина под названием RSS Footer от Joost. Плагин конечно хорош, но ограничен в возможностях. Вы можете только лишь добавить текст в футер, и это один и тот же текст для всех записей. Что делать, если потребуется вывести различный текст для каждой записи в вашей ленте RSS? Если нужно указать другой заголовок для определенных записей в ленте RSS? А если потребуется вывести произвольное поле? Поэтому в сегодняшней статье мы покажем вам как добавить любой тип контента в вашу ленту RSS в WordPress. Этот хак позволит вам полностью контролировать и управлять вашей лентой RSS в WordPress и делать с ней вы сможете все, что угодно.

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

1. Добавляем произвольные поля в футер вашей RSS ленты в WordPress

В этом первом примере мы покажем вам как можно использовать произвольные поля для вывода определенного текста/объекта в вашу RSS ленту в WordPress. Способ позволит вам отображать различный текст, объявления, изображения и все, что угодно, для каждой записи. Для начала открываем файл functions.php и вставляем следующий код:

function devise_postrss($content) {
global $wp_query;
$postid = $wp_query->post->ID;
$coolcustom = get_post_meta($postid, 'coolcustom', true);
if(is_feed()) {
if($coolcustom !== '') {
$content = $content."<br /><br /><div>".$coolcustom."</div>
";
}
else {
$content = $content;
}
}
return $content;
}
add_filter('the_excerpt_rss', 'devise_postrss');
add_filter('the_content', 'devise_postrss');

Расскажем подробнее, как работает этот код. Мы создали функцию под названием devise_postrss, которая выполняет глобальный запрос wp_query поиска в каждой записи на предмет того. существует ли произвольное поле с именем “coolcustom” и задано ли ему значение. Если значение задано, то функция отображает его после контента записи. Если же произвольного поля не существует, то функция по-умолчанию выводит только лишь контент и больше ничего. Мы использовали переменную $content для вывода контента. Также мы использовали функцию if(is_feed) и добавление произвольного текста к основному контенту, что вы можете увидеть во втором фильтре. Но произвольный текст будет отображаться только в ленте благодаря использованию функции if(is_feed). Именно такая реализация позволит избежать проблем совместимости.

Некоторые из вас могут сказать, что топлагин RSS footer делает то же самое, что и эта функция. И ДА и НЕТ. Да, мы добавляем код в футер записи, однако этот текст не то же самый текст для каждой записи. Он различен, потому как вы указываете различный текст для каждой записи с помощью произвольных полей.

Продолжение статьи читайте по ссылке Добавляем контент и полностью управляем лентой RSS в WordPress. Эпизод 2

VN:F [1.9.22_1171]

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии