Skip to content

Kõik WordPressist, veebiarendusest — ja mitte ainult

✂️ Kuidas muuta väljavõtte pikkust WordPressis

✂️ Kuidas muuta väljavõtte pikkust WordPressis

Külastad blogiarhiivi ja näed „telliseid": ühel postitusel on poole ekraani suurune teadaanne, teisel vaid kaks kuiva rida. See juhtub, sest WordPress kärbib vaikimisi väljavõtted 55 sõnani, number, mis mõeldi välja ligi kaks aastakümmet tagasi ja mida pole sellest ajast puututud.

Probleem on selles, et universaalne pikkus pole kunagi õige. Uudistesait vajab 20 sõna, pikk lugu 80 ja portfoolio vaid 10. Hea uudis: saad määrata oma pikkuse ilma pluginate abita, kasutades ühtainsat filtrit failis functions.php. Ja ilma oma saiti ohtu seadmata.

💡 Kiirülevaade:

  • Mõista, mis on väljavõte ja miks 55 sõna pole reegel
  • Muuda pikkust excerpt_length filtri abil (2 koodirida)
  • Määra erinevad pikkused avalehele, kategooriatele ja kohandatud postitüüpidele
  • Vali plugin, kui kood pole variant, ja saa teada, mis 2026. aastal töötab
  • Leia vastused: väljavõte vs „Loe edasi", topeltsisu, kohandatud teadaanded

Mis on väljavõte ja miks selle pikkus on oluline

Väljavõte on automaatne postituse kokkuvõte, mille WordPress genereerib teksti esimesest 55 sõnast. See kuvatakse blogivoogudes, kategoorialehtedel, saidisiseses otsingutulemustes ja RSS-voogudes. Kui autor pole käsitsi täitnud välja „Väljavõte", rakendub automaatne süsteem.

Number 55 pärineb CMS-i varastest versioonidest ega ole muutunud alates versioonist 2.7. Tol ajal oli keskmine postitus 300-400 sõna ja 55 oli mõistlik kompromiss. Tänapäeval on tüüpiline tehnikablogi artikkel 1500+ sõna ja lühike väljavõte kaotab tähenduse: lugejad ei saa aru, millest postitus räägib, ja otsingumootorid näevad katkendites katkist teksti.

Lisaks esteetikale on siin ka tehniline aspekt. Kui väljavõte katkeb poole lause pealt, võib Google kasutada seda fragmenti meta description'is ja sinu katkend otsingutulemustes näeb lohakas välja. Puhas, tähendusrikas ja kindla pikkusega väljavõte parandab olukorra.

Pikkuse muutmine excerpt_length filtri abil

Kõige usaldusväärsem meetod on sisseehitatud excerpt_length filtri kasutamine. See on WordPressi tuumas olemas alates versioonist 2.7.0 ega sõltu teemadest ega pluginates. See töötab igal pool, kus kutsutakse välja funktsioon the_excerpt().

Siin on minimaalne kood sinu alamteema functions.php faili jaoks:

1/**
2 * Changes excerpt length to 30 words.
3 *
4 * @param int $length Current excerpt length.
5 * @return int New excerpt length.
6 */
7function mytheme_excerpt_length( $length ) {
8 return 30;
9}
10add_filter( 'excerpt_length', 'mytheme_excerpt_length', 999 );

Oluline on siin:

  • Prioriteet 999 on võtmedetail. WordPress rakendab sisemiselt oma filtrit vaikeprioriteediga (10). Kui sa ei määra kõrget prioriteeti, käivitub sinu callback enne süsteemset ja kirjutatakse 55-ga üle. 999 tagab, et sinu filter käivitub viimasena.
  • Tagasta täisarv, ainult täisarv. Sõne '30' käivitab ranges režiimis PHP Warningu.
  • Alamteema: ära muuda lähteteema functions.php faili, muudatused lähevad uuendamisel kaotsi. Kui sul pole alamteemat, loo see või kasuta Code Snippets pluginat.

Ülaltoodud kood muudab pikkust kõigi the_excerpt() väljakutsete jaoks saidil. Number 30 on näide; asenda see enda omaga. Uudistesaidile on tüüpiline 20-30 sõna; analüütilisele blogile 50-70; portfooliole 10-15.

Kui sinu sait töötab üle HTTPS-i ja kasutab moodsat PHP versiooni (8.0+), saad selle kirjutada veelgi lühemalt noolefunktsiooniga:

1add_filter( 'excerpt_length', fn( $length ) => 40, 999 );

Kuid ühilduvuse tagamiseks vanemate projektidega jää esimese, nimelise funktsiooniga variandi juurde.

Erinevad pikkused erinevatele lehtedele

Universaalne number on mugav, kuid harva optimaalne. Blogi avalehel on vaja lugejaid haakida pikema kokkuvõttega (60-70 sõna), samas kui „Seotud postitused" vidinas on vaja lühikest 15-20-sõnalist rida. WordPress võimaldab seada tingimuslikku loogikat standardsete kontekstikontrolli funktsioonide kaudu:

1function mytheme_conditional_excerpt_length( $length ) {
2 if ( is_front_page() && is_home() ) {
3 return 70; // Blog home page
4 }
5 if ( is_category() || is_tag() ) {
6 return 45; // Category and tag pages
7 }
8 if ( is_search() ) {
9 return 30; // Search page
10 }
11 if ( is_page_template( 'template-portfolio.php' ) ) {
12 return 15; // Portfolio template
13 }
14 return 55; // Everything else
15}
16add_filter( 'excerpt_length', 'mytheme_conditional_excerpt_length', 999 );

See lähenemine katab valdava enamuse reaalsetest stsenaariumidest. Sama loogika kehtib kohandatud postitüüpide puhul, kasutades is_singular( 'product' ) või is_post_type_archive( 'portfolio' ).

Oluline nüanss: mitte iga teema ei kasuta ausalt the_excerpt(). Mõned premium-teemad (eriti vanemad, oma leheehitajatega) kutsuvad otse välja wp_trim_words() või kasutavad kohandatud ümbriseid. excerpt_length filter sellistel juhtudel ei tööta. Kui pärast koodi lisamist ei muutunud midagi, ava teema functions.php ja otsi alternatiivseid väljakutseid; probleem lahendatakse tavaliselt kohandatud funktsiooni asendamisega standardse the_excerpt()-ga.

Pluginad: kas neist on kasu?

Väljavõtete haldamise pluginate turg on väike; enamik ülesandeid lahendatakse eelmiste osade koodiga. Ajalooliselt populaarset Advanced Excerpt (varem 100 000+ aktiivset paigaldust) pole alates 2024. aastast uuendatud ega testitud uusimate WordPressi versioonidega. WP 6.8+ peal plugin ei tööta ja kasutajate tagasiside kinnitab seda. Selle paigaldamine 2026. aastal ei oma mõtet.

Mis on tegelikult saadaval:

  • Code Snippets on tasuta plugin, mis võimaldab lisada PHP koodi administraatoripaneelis ilma functions.php muutmata. Töötab iga selle artikli koodijupi puhul: kleebi excerpt_length filter, aktiveeri, valmis. Eelis: ei karda teema uuendusi. Allalaadimine: Code Snippets WordPress.org-is.
  • WPCode on uuem tööriist visuaalse liidesega koodijuppide sisestamiseks, tingimusloogikaks ja valmisretseptide pilvekoguga. Kui haldad mitut saiti ega taha koodi dubleerida, on WPCode mugavam.

Mõlemad pluginad ei ole spetsialiseerunud just väljavõtetele; nad lahendavad laiemat ülesannet. Kuid meie eesmärgi jaoks on sellest piisav: lisad filtri üks kord ja unustad selle.

Koodilõikude plugin WordPressi administraatoripaneelil

Kui soovid kindlasti graafilist liidest spetsiaalselt väljavõtete jaoks (pikkuse sisestusväljad, märkeruudud, HTML-siltide valik), siis 2026. aasta seisuga ei ole WordPress.org-i repositooriumis sellise funktsionaalsusega eraldi aktiivselt hooldatavat pluginat. Kõik, mis varem eksisteeris, on kas hüljatud või konfliktis PHP 8.2+-ga. Selles olukorras on excerpt_length filtri õppimine usaldusväärsem: kaks koodirida, mis ei purune ühegi CMS-i uuendusega.

Enne levinud küsimuste juurde liikumist on siin lühike video, mis näitab koodi lisamise protsessi WordPressi teemale:

⁉️🤔 Levinud küsimused

Mis vahe on väljavõttel ja „Loe edasi" sildil?

<!--more--> silt („Loe edasi" nupp) lõikab postituse sealt, kuhu selle asetad, ja säilitab kogu vorminduse: pildid, loendid, pealkirjad. Väljavõte on alati lihttekst ilma HTML-siltideta (kui just pluginat ei kasutata). „Loe edasi" kontrollib kuvamist postituse lehel endal; väljavõte kontrollib kuvamist arhiivilehtedel. Need on kaks erinevat mehhanismi, mis võivad töötada samaaegselt.

Kas väljavõte tekitab SEO jaoks topeltsisu?

Ei. Kui väljavõtte genereerib funktsioon the_excerpt() arhiivilehtedel, näevad otsingumootorid seda kui nende lehtede meta description'it, mitte kui topeltsisu. Veelgi enam, korralikult seadistatud väljavõte aitab Google'il moodustada asjakohast katkendit. Topeltprobleemid tekivad ainult siis, kui sisestad täieliku postituse teksti nii arhiivi- kui ka üksiklehel ilma kanoonilise URL-ita.

Kuidas määrata täiesti kohandatud teadaande teksti?

WordPressi postituse redaktoris on väli „Väljavõte". Kui see on täidetud, kasutab süsteem automaatse asemel sinu teksti. Klassikalises redaktoris luba väli paremal ülal „Ekraani seadete" kaudu. Plokkredaktoris (Gutenberg) kasuta külgriba vahekaarti „Postitus" → „Väljavõte". Kohandatud väljavõte on ülimuslik mis tahes excerpt_length filtri suhtes.

Kas ma saan automaatsetes väljavõtetes HTML-i säilitada?

Standardne excerpt_length filter ei halda silte; wp_trim_excerpt() eemaldab alati HTML-i. Vorminduse säilitamiseks on vaja eraldi lähenemist: kas pluginat (kuid ükski ei tööta 2026. aastal) või standardse väljavõtte generaatori asendamist wp_trim_excerpt filtri kaudu oma koodiga. See on edasijõudnud tehnika arendajatele.

Miks filter minu teemaga ei tööta?

Kolm tüüpilist põhjust: 1) teema ei kutsu välja the_excerpt(), vaid kasutab kohandatud funktsiooni (kontrolli malle archive.php, category.php, search.php); 2) filtri prioriteet on madalam kui WordPressi sisseehitatud töötlejal (kasuta 999); 3) functions.php faili muudeti lähteteemas, mitte alamteemas, ja muudatusi ei rakendatud.

Väljavõtte pikkuse muutmine: kood või plugin?

excerpt_length filter katab valdava enamuse WordPressi saitide vajadused. Kaks rida failis functions.php ja väljavõtte pikkus muutub täpselt selliseks, nagu soovid: avalehel, kategooriates, otsingus, kohandatud postitüüpide puhul. 2026. aastal pole vaja otsida eraldi väljavõtte pluginaid; need on kas hüljatud või üleliigsed.

Kui sa pole kunagi functions.php muutnud, alusta Code Snippetsiga. See on tasuta, turvaline ega sõltu teema uuendustest. Kui oled sellega harjunud, avab tingimusloogika is_front_page() ja is_category() abil kontrollitaseme, mida ükski graafilise liidesega väljavõtte plugin pole kunagi pakkunud.