
✂️ 5 советов по настройке отрывков в WordPress
Вы заходите на главную своего блога и видите здоровенные куски постов, растянутые на три экрана. Читатель не скроллит три экрана ради одной статьи, он уходит. Или наоборот: анонсы обрываются на полуслове, ссылка «Читать дальше» не появляется, а RSS-лента выглядит как огрызки предложений без начала и конца.
По умолчанию WordPress рубит отрывки по первым 55 словам и подставляет стандартное многоточие. Никаких настроек длины, никакой кастомизации текста ссылки, а для страниц (Pages) отрывки вообще не предусмотрены. Всё это решается, но не тыканьем в чекбоксы, а несколькими строчками кода.
Ниже 5 работающих приёмов: от изменения длины отрывка для всего сайта до тонкой настройки под категории и автоматической вставки ссылки «Читать дальше». Каждый с готовым сниппетом, который копируется и вставляется в functions.php.
💡 Быстрый обзор:
- Меняем длину отрывка для всего сайта одной функцией в functions.php
- Задаём разную длину для разных категорий через условие in_category()
- Добавляем ссылку «Читать дальше» в конец каждого отрывка
- Включаем отрывки для страниц WordPress одной строкой кода
- Управляем отрывками без программирования через плагин Advanced Excerpt
Что такое отрывки в WordPress и как они работают
Отрывок (excerpt), это краткое описание поста, которое выводится в списках записей: на главной, в архивах категорий, в результатах поиска и в RSS. В отличие от тега <!--more-->, который обрезает контент в произвольном месте, отрывок, самостоятельная сущность: WordPress либо берёт ваш ручной текст из метабокса «Отрывок», либо генерирует его автоматически из первых 55 слов поста.
Ручной отрывок всегда приоритетнее. Если вы заполнили поле «Отрывок» в редакторе, система покажет именно его, игнорируя автоматическую нарезку. Это даёт полный контроль: можно написать осмысленное саммари, а не довольствоваться первыми двумя предложениями, которые случайно оказались в начале текста.
Проблема в том, что метабокс «Отрывок» по умолчанию скрыт. Включается он в «Настройках экрана» (кнопка вверху страницы редактирования поста), поставьте галочку напротив «Отрывок», и поле появится под редактором. Дальше начинается кастомизация: пять приёмов ниже закрывают все типовые сценарии.
1. Меняем длину отрывка через functions.php
Это база. WordPress по умолчанию отрезает 55 слов, маловато для внятного анонса, но достаточно чтобы читатель понял тему. Если вам нужно больше (или меньше), фильтр excerpt_length решает задачу одной функцией.
Что делает код: переопределяет число слов, которое WordPress возвращает в the_excerpt(). Не трогает ручные отрывки, если вы заполнили поле в редакторе, оно отобразится как есть.
- Откройте
functions.phpвашей темы (Внешний вид → Редактор темы →functions.php) или через FTP - Добавьте в конец файла (перед
?>, если он есть):
1 function my_excerpt_length($length) { 2 return 110; 3 } 4 add_filter('excerpt_length', 'my_excerpt_length');
- Сохраните файл
Число 110, количество слов. Для типового блога 80-120 слов дают 3-4 предложения, этого достаточно для осмысленного анонса без перегруза главной страницы. RSS-читалки тоже скажут спасибо: у них свои лимиты, и слишком длинный отрывок может быть обрезан агрессивнее, чем вы рассчитывали.
Если вы используете блоковую тему (Block Theme, FSE), functions.php может отсутствовать или не работать как ожидается. В этом случае создайте дочернюю тему или используйте плагин Code Snippets, он добавляет сниппеты без правки файлов темы.
2. Разная длина отрывка для разных категорий
Новостям хватает 30 слов, а обзорам и гайдам нужно 100-120. Фильтр excerpt_length в базовой версии даёт одно значение на весь сайт, негибко. Следующий код развязывает длину по категориям.
Сценарий А, одна категория с особой длиной. У вас есть категория «Reviews», где отрывки должны быть короче:
1 function excerpt_length_category($length) { 2 if (in_category('Reviews')) { 3 return 20; 4 } else { 5 return 60; 6 } 7 } 8 add_filter('excerpt_length', 'excerpt_length_category');
Замените Reviews на свой slug категории, числа, на нужные вам.
Сценарий Б, несколько категорий с разной длиной. Каскад if/elseif/else покрывает три уровня: одну категорию, группу категорий и всё остальное:
1 function excerpt_length_category($length) { 2 if (in_category('Review')) { 3 return 35; 4 } elseif (in_category(array('News', 'Videos', 'Editorial'))) { 5 return 60; 6 } else { 7 return 55; 8 } 9 } 10 add_filter('excerpt_length', 'excerpt_length_category');
in_category() принимает slug категории (строку) или массив slug-ов. Условия проверяются по порядку, срабатывает первое совпавшее. В примере выше: посты из «Review» получают 35 слов, из «News», «Videos» и «Editorial», 60, всё остальное, 55.
После сохранения проверьте главную и пару страниц категорий, длина отрывков должна различаться в зависимости от того, к какой категории привязан пост.
3. Добавляем ссылку «Читать дальше» в конец отрывка
Отрывок обрывается, и читатель не всегда понимает, что это лишь анонс, а не вся статья. Ссылка в конце отрывка решает проблему: явный призыв кликнуть и прочитать целиком.

WordPress по умолчанию ставит [...] в месте обрыва, но это не ссылка. Фильтр excerpt_more заменяет многоточие на кастомную строку с HTML:
1 function excerpt_readmore($more) { 2 return '... <a href="' . get_permalink($post->ID) . '" class="readmore">' . 'Read More' . '</a>'; 3 } 4 add_filter('excerpt_more', 'excerpt_readmore');
Что можно поменять:
- Текст ссылки, замените
Read Moreна свой вариант, напримерЧитать дальшеилиПодробнее - CSS-класс,
readmoreв атрибутеclassможно заменить на свой и стилизовать ссылку через CSS (цвет, размер, отступ, подчёркивание) - Разделитель, троеточие с пробелом
'... 'перед тегом<a>можно убрать или заменить на|или,
После сохранения откройте главную страницу блога или архив, у каждого отрывка в конце появится кликабельная ссылка на полный пост. Это работает и в RSS (большинство читалок отображают HTML-ссылки корректно).
4. Включаем отрывки для страниц WordPress
Страницы (Pages) в WordPress не поддерживают отрывки из коробки. Тип записи page не зарегистрирован с поддержкой excerpt, и метабокс в редакторе не появляется, даже если включить его в «Настройках экрана». Но иногда нужно: лендинг с анонсами дочерних страниц, кастомный вывод через WP_Query, страницы услуг в виде карточек.
Решение, одна функция, которая добавляет поддержку отрывков типу записи page:
1 function wploop_pages_excerpt() { 2 add_post_type_support('page', 'excerpt'); 3 } 4 add_action('init', 'wploop_pages_excerpt');
После сохранения functions.php:
- Зайдите в редактор любой страницы
- Нажмите «Настройки экрана» вверху
- Поставьте галочку «Отрывок», теперь она там есть
- Прокрутите страницу вниз, поле для отрывка появилось
Если вы используете кастомный тип записи (CPT), замените page на slug вашего CPT, механика та же. При регистрации CPT через register_post_type() можно сразу указать 'supports' => array(..., 'excerpt') и обойтись без дополнительного кода.
5. Управляем отрывками через плагин Advanced Excerpt
Не хотите лезть в код? Плагин Advanced Excerpt даёт визуальный контроль над всеми аспектами отрывков через админку.

После установки и активации (бесплатно, из репозитория WordPress) в меню «Настройки» появляется страница Advanced Excerpt со следующими опциями:
- Длина отрывка, в символах или в словах. Символы точнее для контроля макета, слова, для читаемости
- Многоточие, символ или HTML-код, которым обрывается отрывок. По умолчанию
…(троеточие…). Можно заменить на[...], стрелку, иконку или оставить пустым - Способ обрезки, по символам (слово может обрезаться на полуслове) или по предложениям (всегда целое предложение, но отрывок будет длиннее заявленного лимита)
- Ссылка «Читать дальше», включить/выключить, задать текст, обернуть в кастомный HTML
- Не показывать ручные отрывки, если включено, плагин генерирует отрывок автоматически всегда, даже если вы заполнили поле вручную
- Удалять шорткоды из отрывка, обязательно держите включённым, чтобы
[contact-form-7]или[shortcode]не торчали в анонсе - Фильтр, выбор, через какую функцию тема выводит отрывки:
the_excerpt(),the_content()или обе. Если не уверены, оставьте обе галочки

Плагин использует те же хуки excerpt_length и excerpt_more, что и ручной код из советов 1-3, но оборачивает их в интерфейс. Документация для разработчиков, на GitHub Wiki, описывает фильтры для кастомной интеграции.
На 2026 год плагин активен на 80 000+ сайтов, но обновляется нечасто: последний релиз вышел в январе 2024 и протестирован до WordPress 6.4. Перед установкой на свежую версию WordPress проверьте совместимость на staging-окружении.
Прежде чем перейти к частым вопросам, короткое видео о работе с отрывками в WordPress на практике:
⁉️🤔 Частые вопросы
Чем ручной отрывок отличается от тега <!--more-->?
Отрывок это отдельное поле, которое выводится через функцию
the_excerpt()в шаблонах темы. Тег<!--more-->вставляется в тело поста и обрезаетthe_content()в конкретном месте. Отрывок показывается в списках записей и RSS, тег more работает только там, где используетсяthe_content(). Для краткого саммари в архивах берите отрывок, для обрезки длинного поста на главной хватит тега more.
Почему отрывок не появляется, хотя я написал его в редакторе?
Тема не вызывает
the_excerpt()в нужном шаблоне. Проверьте шаблоны archive.php, category.php, home.php и search.php. Если там стоитthe_content(), ручной отрывок игнорируется. Замените наthe_excerpt()или используйте условную конструкциюif (has_excerpt()) { the_excerpt(); } else { the_content(); }.
Можно ли показывать миниатюру записи рядом с отрывком?
Да, тема должна вызывать
the_post_thumbnail()передthe_excerpt()в цикле. Большинство современных тем WordPress делают это по умолчанию. Если нет, добавьте вызов миниатюры в шаблон перед отрывком. Для кастомной вёрстки оберните оба вызова в<div class="post-card">и стилизуйте через CSS.
Как убрать отрывки только с главной страницы, оставив в архивах?
Используйте условный тег
is_home()внутри фильтра. Например, вfunctions.php:
1 function disable_excerpt_on_home($excerpt) { 2 if (is_home()) { 3 return ''; 4 } 5 return $excerpt; 6 } 7 add_filter('get_the_excerpt', 'disable_excerpt_on_home');
Для более тонкой настройки по типу страницы, категории или типу записи используйте плагин Advanced Excerpt из совета 5: в его настройках есть чекбоксы «Отключить на...» для главной, архивов, поиска и отдельных страниц.
Что делать с отрывками прямо сейчас
Порядок внедрения, от простого к комплексному. Начните с совета 1: одна функция, одна цифра, и длина отрывка по всему сайту уже под контролем. Затем добавьте ссылку «Читать дальше» (совет 3), это критично для кликабельности на главной и в RSS. Если ведёте блог с рубриками разного формата, совет 2 про длину по категориям уберёт диссонанс между новостями и лонгридами.
Плагин Advanced Excerpt (совет 5) берите, если кода хотите избежать совсем или если тема использует нестандартный способ вывода контента и фильтры excerpt_length/excerpt_more не срабатывают. В остальных случаях код из functions.php надёжнее: меньше зависимостей, не создаёт нагрузки, работает с любой темой.
1



