3 способа создания анонса записи в WP. Как ограничить длину анонсов.

Если вы никак не можете разобраться, как сделать так, чтобы на главной и в рубриках выводилось только начало статьи со ссылкой «Читать далее» (или и вовсе какой-нибудь уникальный текст), то этот пост специально для вас.

Ни в одном из нижеперечисленных способов плагинов нам не потребуется.

Тег «Далее»

Сначала разберём самый простой и самый часто использующийся способ. Работает практически для любых тем WordPress.

Хорош этот способ тем, что вы сможете обрезать содержимое поста в любом месте, в котором захотите. Для этого нужно:

  1. Перейти на страницу редактирования поста.
  2. Поставить курсор в то место в тексте, в котором вы хотите его обрезать и нажать кнопку в редакторе Вставить тег «Далее» кнопка вставки тега далее или кнопку more кнопка Далее для HTML-редактора — в зависимости от того, каким редактором вы пользуетесь (Визуальным или HTML).
  3. Обновить пост.

Записал видео для полной наглядности:

Применение: функция the_content()

Этот способ полностью реализует себя, если для вывода анонса постов используются функция the_content() или похожая функция get_the_content(), которая возвращает контент, а не выводит. В случае с последней фильтры также не будут применяться — текст не отформатируется, шорткоды не задействуются, однако тег «Далее» будет работать как положено.

При использовании the_content() весь HTML поста сохранится, картинки также будут в анонсе.

Вы вставили тег «Далее», но у вас всё равно выводится целиком весь пост? Смотрите решение проблемы здесь.

Цитата

Второй способ создания анонсов постов — использование поля «Цитата». Этот способ сработает только в том случае, если для вывода анонсов у вас используется the_excerpt() (её аналог get_the_excerpt() возвращает цитату, а не выводит).

поле Цитата на странице редактирования постов
Поле «Цитата».

Если вы не можете найти метабокс цитаты на странице редактирования записи, в правом верхнем углу откройте «Настройки экрана» и включите его там.

Пара слов о том как работают функция the_excerpt():

  1. В первую очередь в качестве анонса поста берется содержимое поля «Цитата».
  2. Если цитата пуста, тогда анонсом станет неотформатированный текст поста, обрезанный до 55 слов.
  3. Если в этих 55 словах присутствует тег «Далее», то анонс станет ещё короче.

Постарался показать это на видео:

Собственная функция, обрезающая содержимое поста до определенного количества символов

Код функции представлен ниже, добавляем его в functions.php текущей темы WP.

function the_truncated_post($symbol_amount) {
	$filtered = strip_tags( preg_replace('@<style[^>]*?>.*?</style>@si', '', preg_replace('@<script[^>]*?>.*?</script>@si', '', apply_filters('the_content', get_the_content()))) );
	echo substr($filtered, 0, strrpos(substr($filtered, 0, $symbol_amount), ' ')) . '...';
}

Затем, в том месте, в котором нужно вывести анонс, вставляем:

the_truncated_post( 100 );

Если при использовании этого метода у вас появятся кракозябры, тогда рекомендую внутри функции the_truncated_post(), на 3й строке, произвести следующие замены: substr() => mb_substr(), strrpos() => mb_strrpos(). Если в итоге функция вообще перестанет работать, то это уже вопросы к вашему хостеру.

Миша Рудрастых Разработчик WordPress WooCommerce

Миша Рудрастых

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.

По теме