Вывод в RSS полных заголовков из SEO плагинов
WordPress формирует RSS ленту блога, используя "родные" заголовки записей. То есть, если вы используете какой-то из плагинов, формирующих титлы страниц, то такие сформированные титлы использоваться при создании RSS ленты не будут. Зачастую, на это можно не обращать внимания, но иногда возникает необходимость отдать в RSS полный текст заголовка, который вы прописали в одном из SEO плагинов вроде или Seo Title Tag. Самой простой пример - при трансляции ленты в Twitter короткие заголовки делают ваши твиты крайне неинформативными. И именно в этом случае было бы неплохо отдать в RSS ленту полный заголовок записи, прописанный вами специально для поисковых систем.
1. Хак при использовании плагина All in One SEO Pack.
Откройте файл "wp-includes\feed-rss2.php" и найдите строчку:
36 | <title><?php the_title_rss() ?></title> |
Замените ее на код:
36 37 38 39 | <title><?php $rsstitle = htmlspecialchars(stripcslashes( get_post_meta($post->ID, '_aioseop_title', true))); if ($rsstitle=="") {the_title_rss();} else {echo $rsstitle;} ?></title> |
Данный код проверяет, есть ли свой заголовок у записи, прописанный через плагин. Если нет, то будет использоваться обычный заголовок, а вот если да, то в RSS ленту попадет именно титл, указанный вами вручную. Сразу скажу - такой код поможет вам только, если вы сами указываете титл записи. То есть никаких дополнений вроде названия блога через разделитель вы тут не увидите. Хотя вы можете сами добавить нужный код в хак.
2. Хак при использовании плагина Seo Title Tag.
Откройте файл "wp-includes\feed-rss2.php" и найдите строчку:
36 | <title><?php the_title_rss() ?></title> |
Замените ее на код:
36 37 38 39 | <title><?php $rsstitle = htmlspecialchars(stripcslashes( get_post_meta($post->ID, 'title_tag', true))); if ($rsstitle=="") {the_title_rss();} else {echo $rsstitle;} ?></title> |
Код, по сути, аналогичен предыдущему. Изменилось лишь название кастомного поля, используемого плагином для хранения титла записи. Для других SEO плагинов, формирующих заголовки хак будет идентичен, вам лишь надо будет узнать используемое этим плагином кастомное поле.
Оценить изменение RSS ленты после использования этого хака вы можете на примере этого блога. Последние записи в блоге имеют заголовки по умолчанию в виде одного только названия плагина, а вот в RSS ленте эти заголовки заменены на титлы, которые я прописывал вручную через плагин Seo Title Tag.
Рекомендую также:

#16, 21 марта, 2010 в 23:17
ну не соглашусь с вами =) часто встречаеш коменты в гостевых с пожеланиями сделать RRS ленту, да и к тому же небольшой но дает приток посетителей.
п.с. автор респект Вам тяжело найти в нете внятно написанные учебники бесплатные ))
#17, 28 августа, 2010 в 12:27
Знаете, у меня проблема, не могу нигде найти. как сделать так, чтобы рассылки через имейл и посты по рсс не содержали весь пост, а только превью - чтобы пользователь, если ему интересно, заходил на сайт и уже там смотрел.
#18, 18 февраля, 2011 в 11:48
Этот плагин не совместим с моей темой Грей Меджик ((( можете подсказать почему? выдает ошибка что несовместим с темой ?
#19, 8 мая, 2011 в 14:37
Спасибо огромное за данную статью - очень помогла.
Стояла задача в ссылках в меню прописать тайтл старницы + еще кое-какой текст... Очень долго мучался, пока не нарылся на вашу статью! Респект!
#20, 17 августа, 2011 в 21:12
Добрый день, у меня возникла проблема c RSS, ставлю новую тему, сначала RSS работает, а потом перестает отображаться, возвращаю старую тему, все становится на места. Не подскажите, что может быть?
#21, 28 августа, 2011 в 02:11
А как например, сделать так чтобы ссылки с моего форума отображались под моими постами на ворпресс. То есть мне нужен плагин, который выводил названия постов с форума со ссылками под моими постами на вордпресс. Не могли бы помочь?