
✂️ Jak zmienić długość excerpt w WordPress
Wchodzą Państwo do archiwum bloga, a tam „cegła": jeden wpis ma zapowiedź na pół ekranu, inny, suche dwa wiersze. Wszystko dlatego, że WordPress domyślnie przycina excerpt do 55 słów, liczby, którą wymyślono prawie dwie dekady temu i od tamtej pory nie ruszano.
Problem w tym, że uniwersalna długość nigdy nie jest właściwa. Portalowi informacyjnemu wystarczy 20 słów, długi artykuł potrzebuje 80, a portfolio, zaledwie 10. Dobra wiadomość: można ustawić własną długość bez wtyczek, za pomocą jednego filtra w functions.php. I bez ryzyka uszkodzenia witryny.
💡 Szybki przegląd:
- Zrozumieć, czym jest excerpt i dlaczego 55 słów nie jest dogmatem
- Zmienić długość przez filtr
excerpt_length(2 linijki kodu) - Ustawić różną długość dla strony głównej, kategorii i niestandardowych typów wpisów
- Wybrać wtyczkę, jeśli kod nie wchodzi w grę, i dowiedzieć się, co działa w 2026 roku
- Znaleźć odpowiedzi: excerpt vs „Czytaj dalej", duplikacja treści, niestandardowe zapowiedzi
Czym jest excerpt i dlaczego jego długość ma znaczenie
Excerpt, to automatyczna zapowiedź wpisu, którą WordPress generuje z pierwszych 55 słów tekstu. Pojawia się na stronie z wpisami bloga, na stronach kategorii, w wynikach wyszukiwania w witrynie i w kanale RSS. Jeśli autor nie wypełnił ręcznie pola „Cytat", działa automat.
Liczba 55 pochodzi z wczesnych wersji silnika i nie zmieniła się od wersji 2.7. Wówczas przeciętny wpis liczył 300-400 słów i 55 było rozsądnym kompromisem. Dziś typowy materiał na techblogu to 1500+ słów, a krótki excerpt traci sens: czytelnik nie rozumie, o czym jest wpis, a wyszukiwarki widzą poszarpany tekst we fragmentach.
Poza estetyką istnieje aspekt techniczny. Jeśli excerpt urywa się w połowie zdania, Google może pobrać ten fragment do meta description i Pana/Pani snippet w wynikach wyszukiwania będzie wyglądał niechlujnie. Równa, sensowna zapowiedź o zadanej długości naprawia tę sytuację.
Zmieniamy długość przez filtr excerpt_length
Najpewniejszy sposób, użyć wbudowanego filtra excerpt_length. Istnieje on w jądrze WordPressa od wersji 2.7.0 i nie zależy ani od szablonu, ani od wtyczek. Działa wszędzie tam, gdzie wywoływana jest funkcja the_excerpt().
Oto minimalny kod do pliku functions.php Pana/Pani szablonu potomnego:
1 /** 2 * Меняет длину excerpt на 30 слов. 3 * 4 * @param int $length Текущая длина excerpt. 5 * @return int Новая длина excerpt. 6 */ 7 function mytheme_excerpt_length( $length ) { 8 return 30; 9 } 10 add_filter( 'excerpt_length', 'mytheme_excerpt_length', 999 );
Co jest tu ważne:
- Priorytet 999, kluczowy szczegół. WordPress wewnętrznie stosuje swój filtr z domyślnym priorytetem (10). Jeśli nie wskaże Pan/Pani wysokiego priorytetu, Pana/Pani callback wykona się przed systemowym i zostanie nadpisany wartością 55. 999 gwarantuje, że Pana/Pani filtr wykona się jako ostatni.
- Zwracanie liczby całkowitej, tylko integer. Łańcuch
'30'wywoła PHP Warning w trybie ścisłym. - Szablon potomny, nie wolno edytować
functions.phpszablonu nadrzędnego: zmiany przepadną podczas aktualizacji. Jeśli nie ma Pan/Pani szablonu potomnego, proszę go utworzyć lub użyć wtyczki Code Snippets.
Powyższy kod zmienia długość dla wszystkich wywołań the_excerpt() w witrynie. Liczba 30 to przykład; proszę wstawić własną. Dla portalu informacyjnego typowe jest 20-30 słów, dla bloga analitycznego, 50-70, dla portfolio, 10-15.
Jeśli Pana/Pani witryna działa po HTTPS i używa nowoczesnej wersji PHP (8.0+), można zapisać jeszcze krócej, za pomocą funkcji strzałkowej:
1 add_filter( 'excerpt_length', fn( $length ) => 40, 999 );
Jednak dla zgodności ze starszymi projektami lepiej trzymać się pierwszego wariantu z nazwaną funkcją.
Różna długość dla różnych stron
Uniwersalna liczba jest wygodna, ale rzadko optymalna. Na stronie głównej bloga trzeba przyciągnąć czytelnika rozbudowaną zapowiedzią (60-70 słów), a w widżecie „Podobne wpisy", krótkim wierszem 15-20 słów. WordPress pozwala zdefiniować logikę warunkową za pomocą standardowych funkcji sprawdzania kontekstu:
1 function mytheme_conditional_excerpt_length( $length ) { 2 if ( is_front_page() && is_home() ) { 3 return 70; // Главная страница блога 4 } 5 if ( is_category() || is_tag() ) { 6 return 45; // Страницы рубрик и меток 7 } 8 if ( is_search() ) { 9 return 30; // Страница поиска 10 } 11 if ( is_page_template( 'template-portfolio.php' ) ) { 12 return 15; // Шаблон портфолио 13 } 14 return 55; // Всё остальное 15 } 16 add_filter( 'excerpt_length', 'mytheme_conditional_excerpt_length', 999 );
To podejście pokrywa zdecydowaną większość rzeczywistych scenariuszy. Tę samą logikę stosuje się do niestandardowych typów wpisów przez is_singular( 'product' ) lub is_post_type_archive( 'portfolio' ).
Ważny niuans: nie każdy szablon uczciwie używa the_excerpt(). Niektóre szablony premium (zwłaszcza stare, z własnymi kreatorami stron) wywołują wp_trim_words() bezpośrednio lub używają własnych opakowań. Filtr excerpt_length w takich przypadkach nie zadziała. Jeśli po dodaniu kodu nic się nie zmieniło, proszę otworzyć functions.php szablonu i poszukać alternatywnych wywołań; zazwyczaj problem rozwiązuje się przez zastąpienie niestandardowej funkcji standardowym the_excerpt().
Wtyczki: czy warto?
Rynek wtyczek do zarządzania excerpt jest niewielki, większość zadań rozwiązuje się kodem z poprzednich rozdziałów. Historycznie popularny Advanced Excerpt (100 000+ aktywnych instalacji w przeszłości) od 2024 roku nie był aktualizowany i nie był testowany z najnowszymi wersjami WordPressa. Na WP 6.8+ wtyczka nie działa, co potwierdzają opinie użytkowników. Instalowanie jej w 2026 roku nie ma sensu.
Co jest realnie dostępne:
- Code Snippets, bezpłatna wtyczka, która pozwala dodawać kod PHP w panelu administracyjnym bez edycji
functions.php. Nadaje się do każdego fragmentu kodu z tego artykułu: wstawia Pan/Pani filtrexcerpt_length, aktywuje i działa. Plus: nie boi się aktualizacji szablonu. Pobrać: Code Snippets na WordPress.org. - WPCode, nowsze narzędzie z wizualnym interfejsem do wstawiania fragmentów kodu, logiką warunkową i chmurową biblioteką gotowych receptur. Jeśli zarządza Pan/Pani kilkoma witrynami i nie chce powielać kodu, WPCode jest wygodniejszy.
Obie wtyczki nie specjalizują się wyłącznie w excerpt, rozwiązują zadanie szerzej. Ale do naszego celu to wystarczy: raz dodaje Pan/Pani filtr i zapomina.

Jeśli zdecydowanie chce Pan/Pani interfejsu GUI do excerpt (pola wprowadzania długości, checkboxy, wybór znaczników HTML), na moment 2026 roku w repozytorium WordPress.org nie ma osobnej, aktywnej wtyczki z taką funkcjonalnością. Wszystkie, które istniały wcześniej, są albo porzucone, albo kolidują z PHP 8.2+. W tej sytuacji pewniej jest opanować filtr excerpt_length, to dwie linijki kodu, które nie zepsują się przy żadnej aktualizacji silnika.
Zanim przejdziemy do często zadawanych pytań, krótkie wideo pokazujące proces dodawania kodu do szablonu WordPress:
⁉️🤔 Często zadawane pytania
Czym excerpt różni się od znacznika „Czytaj dalej"?
Znacznik
<!--more-->(przycisk „Czytaj dalej") przerywa wpis w miejscu, w którym go Pan/Pani umieścił(a), i zachowuje całe formatowanie: obrazy, listy, nagłówki. Excerpt, to zawsze oczyszczony tekst bez znaczników HTML (jeśli nie używa się wtyczki). „Czytaj dalej" steruje wyświetlaniem na stronie samego wpisu, excerpt, na stronach archiwalnych. To dwa różne mechanizmy, które mogą działać jednocześnie.
Czy excerpt tworzy duplikaty treści dla SEO?
Nie, jeśli excerpt jest tworzony przez funkcję
the_excerpt()na stronach archiwalnych, wyszukiwarki widzą to jakometa descriptiondla odpowiednich stron, a nie jako zduplikowaną treść. Ponadto prawidłowo skonfigurowany excerpt pomaga Google utworzyć trafny snippet. Problemy z duplikatami pojawiają się tylko wtedy, gdy wstawia Pan/Pani pełny tekst wpisu zarówno na stronę archiwalną, jak i na stronę pojedynczego wpisu bez kanonicznego adresu URL.
Jak ustawić całkowicie ręczny tekst zapowiedzi?
W edytorze wpisu WordPress znajduje się pole „Cytat" (excerpt). Jeśli jest ono wypełnione, system używa Pana/Pani tekstu zamiast automatycznego. W edytorze klasycznym pole włącza się przez „Ustawienia ekranu" u góry po prawej. W edytorze blokowym (Gutenberg), panel boczny „Wpis" → zakładka „Zapowiedź". Niestandardowy excerpt ma priorytet nad każdym filtrem
excerpt_length.
Czy można zachować HTML w automatycznym excerpt?
Standardowy filtr
excerpt_lengthnie zarządza znacznikami,wp_trim_excerpt()zawsze czyści HTML. Aby zachować formatowanie, potrzebne jest osobne podejście: albo wtyczka (ale w 2026 roku nie ma działających), albo zastąpienie standardowego generatora excerpt przez filtrwp_trim_excerptz własnym kodem, to już zaawansowana technika dla deweloperów.
Dlaczego filtr nie działa z moim szablonem?
Trzy typowe przyczyny: 1) szablon nie wywołuje
the_excerpt(), lecz używa własnej funkcji, proszę sprawdzić szablony archive.php, category.php, search.php; 2) priorytet filtra jest niższy niż wbudowanego handlera WordPressa, proszę użyć999; 3) plikfunctions.phpbył edytowany w szablonie nadrzędnym, a nie w potomnym, i zmiany nie zostały przejęte.
Zmieniać długość excerpt: kod czy wtyczka?
Filtr excerpt_length pokrywa potrzeby zdecydowanej większości witryn na WordPressie. Dwie linijki w functions.php i długość zapowiedzi staje się dokładnie taka, jaką chce ją Pan/Pani widzieć: na stronie głównej, w kategoriach, w wyszukiwarce, dla niestandardowych typów wpisów. Osobnych wtyczek do excerpt w 2026 roku nie trzeba szukać, są albo porzucone, albo zbędne.
Jeśli ani razu nie edytował Pan/Pani functions.php, proszę zacząć od Code Snippets. To bezpłatne, bezpieczne i niezależne od aktualizacji szablonu. A kiedy nabierze Pan/Pani wprawy, logika warunkowa z is_front_page() i is_category() otworzy poziom kontroli, jakiego żadna wtyczka GUI do excerpt nigdy nie dawała.



