Skip to content

Все для WordPress, веб-розробки — і не тільки

✂️ 5 Порад з налаштування уривків у WordPress

✂️ 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
  • Додайте в кінець файлу (перед ?>, якщо він є):
1function my_excerpt_length($length) {
2 return 110;
3}
4add_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», де уривки мають бути коротшими:

1function excerpt_length_category($length) {
2 if (in_category('Reviews')) {
3 return 20;
4 } else {
5 return 60;
6 }
7}
8add_filter('excerpt_length', 'excerpt_length_category');

Замініть Reviews на свій slug категорії, а числа, на потрібні вам.

Сценарій Б, кілька категорій із різною довжиною. Каскад if/elseif/else покриває три рівні: одну категорію, групу категорій і все решта:

1function 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}
10add_filter('excerpt_length', 'excerpt_length_category');

in_category() приймає slug категорії (рядок) або масив slug-ів. Умови перевіряються за порядком, спрацьовує перший збіг. У прикладі вище: пости з «Review» отримують 35 слів, з «News», «Videos» та «Editorial», 60, усе решта, 55.

Після збереження перевірте головну й пару сторінок категорій: довжина уривків має відрізнятися залежно від того, до якої категорії прив’язаний пост.

3. Додаємо посилання «Читати далі» в кінець уривка

Уривок обривається, і читач не завжди розуміє, що це лише анонс, а не вся стаття. Посилання в кінці уривка вирішує проблему: явний заклик клікнути й прочитати повністю.

Приклад посилання Read More в кінці уривка WordPress

WordPress типово ставить [...] у місці обриву, але це не посилання. Фільтр excerpt_more замінює трикрапку на кастомний рядок із HTML:

1function excerpt_readmore($more) {
2 return '... <a href="' . get_permalink($post->ID) . '" class="readmore">' . 'Read More' . '</a>';
3}
4add_filter('excerpt_more', 'excerpt_readmore');

Що можна змінити:

  • Текст посилання, замініть Read More на свій варіант, наприклад Читать дальше або Подробнее
  • CSS-клас, readmore в атрибуті class можна замінити на свій і стилізувати посилання через CSS (колір, розмір, відступ, підкреслення)
  • Розділювач, три крапки з пробілом '... ' перед тегом <a> можна прибрати або замінити на | чи ,

Після збереження відкрийте головну сторінку блогу або архів, у кожного уривка в кінці з'явиться клікабельне посилання на повний пост. Це працює і в RSS (більшість читалок відображають HTML-посилання коректно).

4. Вмикаємо уривки для сторінок WordPress

Сторінки (Pages) у WordPress не підтримують уривки з коробки. Тип запису page не зареєстрований із підтримкою excerpt, і метабокс у редакторі не з'являється, навіть якщо увімкнути його в «Налаштуваннях екрана». Але іноді потрібно: лендинг з анонсами дочірніх сторінок, кастомне виведення через WP_Query, сторінки послуг у вигляді карток.

Рішення, одна функція, яка додає підтримку уривків типу запису page:

1function wploop_pages_excerpt() {
2 add_post_type_support('page', 'excerpt');
3}
4add_action('init', 'wploop_pages_excerpt');

Після збереження functions.php:

  • Зайдіть у редактор будь-якої сторінки
  • Натисніть «Налаштування екрана» вгорі
  • Поставте галочку «Уривок», тепер вона там є
  • Прокрутіть сторінку вниз, поле для уривка з'явилося

Якщо ви використовуєте кастомний тип запису (CPT), замініть page на slug вашого CPT, механіка та сама. Під час реєстрації CPT через register_post_type() можна одразу вказати 'supports' => array(..., 'excerpt') і обійтися без додаткового коду.

5. Керуємо уривками через плагін Advanced Excerpt

Не хочете лізти в код? Плагін Advanced Excerpt дає візуальний контроль над усіма аспектами уривків через адмінку.

Сторінка налаштувань плагіна Advanced Excerpt в адмінці WordPress

Після встановлення та активації (безкоштовно, з репозиторію WordPress) у меню «Налаштування» з’являється сторінка Advanced Excerpt із такими опціями:

  • Довжина уривка, у символах або словах. Символи точніші для контролю макета, слова, для читабельності
  • Три крапки, символ або HTML-код, яким обривається уривок. Типово &hellip; (трикрапка ). Можна замінити на [...], стрілку, іконку або залишити порожнім
  • Спосіб обрізання, за символами (слово може обрізатися на півслові) або за реченнями (завжди ціле речення, але уривок буде довшим за заявлений ліміт)
  • Посилання «Читати далі», увімкнути/вимкнути, задати текст, обгорнути в кастомний HTML
  • Не показувати ручні уривки, якщо ввімкнено, плагін генерує уривок автоматично завжди, навіть якщо ви заповнили поле вручну
  • Видаляти шорткоди з уривка, обов’язково тримайте ввімкненим, щоб [contact-form-7] або [shortcode] не стирчали в анонсі
  • Фільтр, вибір, через яку функцію тема виводить уривки: the_excerpt(), the_content() або обидві. Якщо не впевнені, залиште обидві галочки
Додаткові налаштування фільтрації плагіна Advanced Excerpt

Плагін використовує ті самі хуки 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 }
7add_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