Задача: ограничить вывод текста записи на WordPress до тега more.
Например: нужно вывести краткий анонс в RSS ленте с форматированием. Проблема в том что WordPress при формировании RSS ленты либо отдает текст записи полностью, игнорируя more. Либо обрезает его с помощью the_excerpt_rss()
, the_content_rss()
или аналогичными функциями, вследствие чего теряется форматирование (HTML теги и изображения обрезаются).
Другими словами в RSS можно получить либо полный текст, либо только обрезанный анонс без форматирования.
Для решения проблемы существует плагин Ozh Better Feed (см. настройку Cut the Feed on «Read more»). Но мы же не ищем легких путей. К тому же зачем городить еще один плагин если можно поправить feed-rss2.php
в одной строке (по умолчанию файл находится в wp-include/
, подробней тут).
Проблема вывода до тега more в том что используя the_content()
разбитие происходит не на всех страницах (в RSS разбитие не происходит).
Решение:
<description><![CDATA[<?php global $more; $more = 0; the_content('Продолжение'); ?>]]></description>
Теперь the_content()
не будет игнорировать тег more и у вас получится вывести анонс поста. Пример вывода: http://feeds.feedburner.com/sauron918