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

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

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

2. Добавляем дополнительный текст к заголовкам записей в RSS

На вашем блоге есть гостевые посты, рекламные записи и обзоры? Если есть, то способ вам наверняка окажется полезным. У некоторых блоггеров есть специальные стили для оформления различных типов записей, поэтому их пользователи могут различать их. Однако, если эти записи отправляются в RSS-ридер, то эти стили конечный пользователь уже не увидит. Здесь и поможет нижепредложенный способ. Он добавит любой текст либо до, либо после заголовка.

Например, если у вас был заголовок “Commercial WordPress Theme” и эта была рекламная запись, то вы можете изменить его на “Sponsored Post: Commercial WordPress Theme”. Так же можно сделать и для гостевой записи и т.п.

Для реализации этого, открываем файл functions.php и добавляем следующий код в него:

function devise_titlerss($content) {
global $wp_query;
$postid = $wp_query->post->ID;
$gpost = get_post_meta($postid, 'guest_post', true);
$spost = get_post_meta($postid, 'sponsored_post', true);

if($gpost !== '') {
$content = 'Гостевой пост: '.$content;
}
elseif ($spost !== ''){
$content = 'Рекламный пост: '.$content;
}
else {
$content = $content;
}
return $content;
}
add_filter('the_title_rss', 'devise_titlerss');

Пояснения к коду:

Мы используем функцию под названием devise_titlerss, которая выполняет global wp_query для поиска в каждой записи наличия $gpost и $spost. Эти два элемента в основном занимаются поиском двух определенных произвольных полей под названием “guest_post” или “sponsored_post”. Если какая-либо запись содержит эти произвольные поля, добавленные со значением true, то код добавит их в текст. Если же их нет, то вы увидите стандартный заголовок. Сначала код ищет для $gpost значение true, если значение не $gpost, то ищем для $spost значение true. Если и здесь значение не определено, то выводится нормальный контент. Если же условие будет соответствовать, то код выведет различный текст в заголовок, который мы указали. Мы использовали строку $content для вывода заголовка записи.

Это был вывод произвольных полей в заголовок. Хотите отображать название рубрики в каждом заголовке? Просто вставьте следующий код в ваш файл functions.php:

function devise_cattitlerss($content) {
$postcat = "";
foreach((get_the_category()) as $cat) {
$postcat .= ' ('.$cat->cat_name . ')';
}
$content = $content.$postcat;
return $content;
}
add_filter('the_title_rss', 'devise_cattitlerss');

Пояснения: Мы использовали функцию devise_cattitlerss для получения ID рубрики для каждой записи и затем вывода этого текста справа от заголовка. Поэтому если заголовок был “Настраиваем Contact Form 7?, то теперь он будет “Настраиваем Contact Form 7 [Плагины]“. Возможно, вы обратили внимание, что в этом коде нет условия if. Мы использовали $content для основного заголовка и переменную $postcat для определения названия рубрики. Можно переделать их по своему желанию.

3. Добавляем одинаковый текст во все записи в RSS

Если же вы просто хотите добавить одинаковый текст, то вы можете использовать плагин под названием RSS Footer от Joost, потому как это проще всего. Однако, если хочется сделать всё самостоятельно, то мы предусмотрели и такой вариант. Добавляем следующий код в ваш файл functions.php:

function devise_postrss($content) {
if(is_feed()){
$content = 'Эта запись была написана Игорем Буцким.  '.$content.'Посетите наш ресурс WPinCode';
}
return $content;
}
add_filter('the_excerpt_rss', 'devise_postrss');
add_filter('the_content', 'devise_postrss');

Пояснение: Мы вызывали функцию devise_postrss для добавления в каждую запись контента перед записью, сообщающую что ‘Эта запись была написана Игорем Буцким, а после контента Посетите наш ресурс WPinCode. И мы добавили функцию if(is_feed), поэтому текст будет отображаться только в ленте RSS.

Функция будет очень полезна, если вы хотите продавать рекламу в определенных записях в RSS.

Источник: Мы использовали много гайдов по плагину RSS Footer от Joost. Также небольшой хак был взят с французского обучающего сайта, а также мы добавили свои собственные переменные и возможность превратить произвольные поля в произвольные заголовки.

По всем вопросам и отзывам просьба писать в комментарии ниже.

Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.

VN:F [1.9.22_1171]

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