Сегодня 23 декабря, вторник ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7281
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Ротозеев НЕТ »  | Ротозеев НЕТ
Ротозеев НЕТ » | Ротозеев НЕТ
Голосов: 1
Адрес блога: http://rotozeev.net
Добавлен: 2012-01-13 00:40:21 блограйдером rotozeev
Принадлежит блограйдеру rotozeev
 

Как обрезать пост в RSS в заданном месте

2013-05-12 04:16:58 (читать в оригинале)

Прошлый мой пост оказался очень длинным. Из-за того, что я решил выдавать в RSS не анонсы, а целые записи случились проблемы. В агрегаторах FeedSpot и Netvibes пост показывался все равно не полностью – критический размер составлял порядка 13 тыс. символов, а Google Reader и Feedly вообще не отображали в своей ленте эту запись. Было принято решение найти способ вручную обрезать RSS любого поста: причем, использовать для этого свою уникальную метку, чисто для RSS, никак не связанную с тэгом more.

Я использую плагин Ozh’ Better Feed, который предоставляет выбор: обрезать RSS в том же месте, где поставлен тэг more (читать дальше), либо же выдавать пост целиком. В принципе, для моей задачи подошел бы плагин RSS No More, который может обрезать RSS в заданном месте записи, в том месте, где вставлен тэг [rss-cut]. Однако, не хотелось из-за редко используемой фичи ставить отдельный плагин, который к тому же давно не обновлялся. Было решено просто подправить Ozh’ Better Feed.

Итак, в папке плагина ozh-better-feed находится папка inc, в которой имеется файл feed.php – его и нужно изменить. Я это сделал следующим образом. В функции function wp_ozh_betterfeed_dofeed($content) после строк

$separator = "<span id=\"more-$id\"></span>";
if ($wp_ozh_betterfeed['split'] and (strpos($content,$separator) != FALSE)) {
$content = preg_split("#$separator#",$content);
$content = $content[0] . $wp_ozh_betterfeed['readmore'];
//close <p> tags that might have been lost in the splitting
if (!preg_match("#</p>$#", $content)) {
$content .= "</p>\n";
}
$wp_ozh_betterfeed['splitted'] = 1;
}

добавляю практически тоже самое:

// — custom rss (not post!) cut —–
$separator = "<span id=\"cutrss\"></span>";
if (strpos($content,$separator) != FALSE) {
$content = preg_split("#$separator#",$content);
$content = $content[0] . $wp_ozh_betterfeed['readmore'];
//close <p> tags that might have been lost in the splitting
if (!preg_match("#</p>$#", $content)) {
$content .= "</p>\n";
}
$wp_ozh_betterfeed['splitted'] = 1;
}
// ————————————

 

После этих манипуляций появляется следующая возможность. При написании поста, в том месте где необходимо обрезать RSS вставляется следующее:

<span id="cutrss"></span>

(без лишних пробелов и прочих изменений символов!)

Вот собственно и все.

Ах да, и в качестве лытдыбра: я таки вынес сегодня елку.

---
Можно зайти и оставить комментарий или же перепостить в соц.сети: Поделиться ВКонтакте Запостить в Facebook!



 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по сумме баллов (758) в категории «Истории»
Изменения рейтинга
Категория «Поэты»
Взлеты Топ 5
+27
41
biletiks












Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.