Skip to content

Kaikki WordPressistä, web-kehityksestä — ja paljon muuta

✂️ Kuinka muuttaa katkelman pituutta WordPressissä

✂️ Kuinka muuttaa katkelman pituutta WordPressissä

Vierailet blogiarkistossa ja näet "tiiliskiviä": yhdessä julkaisussa on puolen ruudun ilmoitus, toisessa vain kaksi kuivaa riviä. Tämä johtuu siitä, että WordPress katkaisee oletuksena poiminnat 55 sanaan, lukuun, joka keksittiin lähes kaksi vuosikymmentä sitten ja on pysynyt koskemattomana siitä lähtien.

Ongelma on, että yleispätevä pituus ei ole koskaan oikea. Uutissivusto tarvitsee 20 sanaa, pitkä artikkeli 80 ja portfolio vain 10. Hyvä uutinen: voit asettaa oman pituuden ilman lisäosia, yhdellä suodattimella functions.php-tiedostossa. Ja ilman riskiä sivustollesi.

💡 Pikaopas:

  • Ymmärrä, mikä poiminta on ja miksi 55 sanaa ei ole sääntö
  • Muuta pituus excerpt_length-suodattimella (2 koodiriviä)
  • Aseta eri pituudet etusivulle, kategorioille ja mukautetuille sisältötyypeille
  • Valitse lisäosa, jos koodi ei ole vaihtoehto, ja opi mikä toimii vuonna 2026
  • Löydä vastaukset: poiminta vs. "Lue lisää", duplikaattisisältö, mukautetut ilmoitukset

Mikä poiminta on ja miksi sen pituudella on väliä

Poiminta on automaattinen julkaisun tiivistelmä, jonka WordPress tuottaa tekstin 55 ensimmäisestä sanasta. Se näkyy blogisyötteissä, kategoriasivuilla, sivuston sisäisissä hakutuloksissa ja RSS-syötteissä. Jos kirjoittaja ei ole täyttänyt "Poiminta"-kenttää manuaalisesti, automaattinen järjestelmä astuu kuvaan.

Luku 55 tuli CMS:n varhaisista versioista, eikä se ole muuttunut version 2.7 jälkeen. Siihen aikaan keskimääräinen julkaisu oli 300-400 sanaa, ja 55 oli kohtuullinen kompromissi. Nykyään tyypillinen artikkeli techblogissa on yli 1500 sanaa, ja lyhyt poiminta menettää merkityksensä: lukijat eivät ymmärrä, mistä julkaisussa on kyse, ja hakukoneet näkevät katkonaista tekstiä katkelmissa.

Estetiikan lisäksi mukana on tekninen näkökulma. Jos poiminta katkeaa kesken lauseen, Google saattaa käyttää tuota katkelmaa meta description-kentässä, ja katkelmasi hakutuloksissa näyttää huolimattomalta. Selkeä, merkityksellinen ja määritellyn pituinen poiminta korjaa tilanteen.

Pituuden muuttaminen excerpt_length-suodattimella

Luotettavin tapa on käyttää sisäänrakennettua excerpt_length-suodatinta. Se on ollut WordPressin ytimessä versiosta 2.7.0 lähtien, eikä se ole riippuvainen teemoista tai lisäosista. Se toimii kaikkialla, missä the_excerpt()-funktiota kutsutaan.

Tässä on minimaalinen koodi lapsiteemasi functions.php-tiedostoon:

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 );

Tässä on merkityksellistä:

  • Prioriteetti 999 on avainyksityiskohta. WordPress soveltaa sisäisesti omaa suodatintaan oletusprioriteetilla (10). Jos et määritä korkeaa prioriteettia, takaisinkutsusi suoritetaan ennen järjestelmän omaa ja se ylikirjoitetaan arvolla 55. 999 takaa, että suodattimesi suoritetaan viimeisenä.
  • Palauta kokonaisluku, vain kokonaisluku. Merkkijono '30' laukaisee PHP Warningin strict-tilassa.
  • Lapsiteema: älä muokkaa pääteeman functions.php-tiedostoa, muutokset katoavat päivityksessä. Jos sinulla ei ole lapsiteemaa, luo sellainen tai käytä Code Snippets -lisäosaa.

Yllä oleva koodi muuttaa pituuden kaikille the_excerpt()-kutsuille sivustolla. Luku 30 on esimerkki; korvaa se omallasi. Uutissivustolle tyypillinen on 20-30 sanaa; analyyttiselle blogille 50-70; portfoliolle 10-15.

Jos sivustosi toimii HTTPS:n yli ja käyttää modernia PHP-versiota (8.0+), voit kirjoittaa sen vielä lyhyemmin nuolifunktiolla:

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

Mutta yhteensopivuuden vuoksi vanhempien projektien kanssa pysy ensimmäisessä variantissa, jossa käytetään nimettyä funktiota.

Eri pituudet eri sivuille

Yleispätevä luku on kätevä, mutta harvoin optimaalinen. Blogin etusivulla sinun täytyy koukuttaa lukijat laajennetulla tiivistelmällä (60-70 sanaa), kun taas "Aiheeseen liittyvät julkaisut" -widgetissä tarvitset lyhyen 15-20 sanan rivin. WordPress mahdollistaa ehdollisen logiikan tavallisten kontekstintarkistusfunktioiden kautta:

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 );

Tämä lähestymistapa kattaa valtaosan todellisista skenaarioista. Sama logiikka pätee mukautettuihin sisältötyyppeihin funktioilla is_singular( 'product' ) tai is_post_type_archive( 'portfolio' ).

Tärkeä vivahde: jokainen teema ei rehellisesti käytä the_excerpt()-funktiota. Jotkin premium-teemat (erityisesti vanhemmat, joissa on omat sivurakentajansa) kutsuvat wp_trim_words()-funktiota suoraan tai käyttävät mukautettuja kääreitä. excerpt_length-suodatin ei toimi tällaisissa tapauksissa. Jos mikään ei muuttunut koodin lisäämisen jälkeen, avaa teeman functions.php ja etsi vaihtoehtoisia kutsuja; ongelma ratkeaa yleensä korvaamalla mukautettu funktio tavallisella the_excerpt()-funktiolla.

Lisäosat: ovatko ne sen arvoisia?

Poimintojen hallintalisäosien markkinat ovat pienet; useimmat tehtävät ratkeavat edellisten osioiden koodilla. Historiallisesti suosittua Advanced Excerpt -lisäosaa (aiemmin yli 100 000 aktiivista asennusta) ei ole päivitetty tai testattu uusimpien WordPress-versioiden kanssa vuoden 2024 jälkeen. WP 6.8+:ssa lisäosa ei toimi, ja käyttäjäarviot vahvistavat tämän. Sen asentaminen vuonna 2026 ei ole järkevää.

Mitä on oikeasti saatavilla:

  • Code Snippets on ilmainen lisäosa, jolla voit lisätä PHP-koodia hallintapaneelissa muokkaamatta functions.php-tiedostoa. Toimii mille tahansa tämän artikkelin koodinpätkälle: liitä excerpt_length-suodatin, aktivoi, valmista. Etu: ei pelkää teemapäivityksiä. Lataa: Code Snippets WordPress.orgissa.
  • WPCode on uudempi työkalu, jossa on visuaalinen käyttöliittymä koodinpätkien lisäämiseen, ehdollinen logiikka ja pilvikirjasto valmiita reseptejä. Jos hallinnoit useita sivustoja etkä halua kopioida koodia, WPCode on kätevämpi.

Kumpikaan lisäosa ei ole erikoistunut nimenomaan poimintoihin; ne ratkaisevat laajemman tehtävän. Mutta meidän tarkoitukseemme tämä riittää: lisäät suodattimen kerran ja unohdat sen.

Code Snippets -lisäosa WordPressin hallintapaneelissa

Jos haluat ehdottomasti graafisen käyttöliittymän nimenomaan poiminnoille (pituuden syöttökentät, valintaruudut, HTML-tagien valinta), vuonna 2026 WordPress.orgin arkistossa ei ole erillistä aktiivisesti ylläpidettyä lisäosaa tällaisella toiminnallisuudella. Kaikki aiemmin olemassa olleet ovat joko hylättyjä tai ristiriidassa PHP 8.2+:n kanssa. Tässä tilanteessa excerpt_length-suodattimen opettelu on luotettavampaa: kaksi koodiriviä, jotka eivät hajoa millään CMS-päivityksellä.

Ennen kuin siirrymme yleisiin kysymyksiin, tässä on lyhyt video, joka näyttää koodin lisäämisen WordPress-teemaan:

⁉️🤔 Yleisiä kysymyksiä

Mitä eroa on poiminnalla ja "Lue lisää" -tagilla?

<!--more-->-tagi ("Lue lisää" -painike) katkaisee julkaisun siitä kohdasta, mihin sen asetat, ja säilyttää kaiken muotoilun: kuvat, listat, otsikot. Poiminta on aina pelkkää tekstiä ilman HTML-tageja (ellei lisäosaa käytetä). "Lue lisää" hallitsee näyttöä itse julkaisusivulla; poiminta hallitsee näyttöä arkistosivuilla. Nämä ovat kaksi eri mekanismia, jotka voivat toimia samanaikaisesti.

Luoko poiminta duplikaattisisältöä hakukoneoptimoinnin kannalta?

Ei. Jos poiminnan tuottaa the_excerpt()-funktio arkistosivuilla, hakukoneet näkevät sen kyseisten sivujen meta description-kenttänä, eivät duplikaattisisältönä. Lisäksi oikein määritetty poiminta auttaa Googlea muodostamaan relevantin katkelman. Duplikaattiongelmia syntyy vain, jos lisäät koko julkaisun tekstin sekä arkisto- että yksittäiselle sivulle ilman kanonista URL-osoitetta.

Miten asetan täysin mukautetun ilmoitustekstin?

WordPressin julkaisueditorissa on "Poiminta"-kenttä. Jos se on täytetty, järjestelmä käyttää tekstiäsi automaattisen sijaan. Klassisessa editorissa ota kenttä käyttöön "Näyttöasetukset"-kohdasta oikeassa yläkulmassa. Lohkoeditorissa (Gutenberg) käytä sivupalkin "Julkaisu" → "Poiminta"-välilehteä. Mukautettu poiminta ohittaa minkä tahansa excerpt_length-suodattimen.

Voinko säilyttää HTML:n automaattisissa poiminnoissa?

Tavallinen excerpt_length-suodatin ei hallitse tageja; wp_trim_excerpt() poistaa aina HTML:n. Muotoilun säilyttämiseksi tarvitset erillisen lähestymistavan: joko lisäosan (mutta mikään ei toimi vuonna 2026) tai tavallisen poimintageneraattorin korvaamisen wp_trim_excerpt-suodattimen kautta omalla koodillasi. Tämä on edistynyt tekniikka kehittäjille.

Miksi suodatin ei toimi teemani kanssa?

Kolme tyypillistä syytä: 1) teema ei kutsu the_excerpt()-funktiota vaan käyttää mukautettua funktiota (tarkista archive.php-, category.php-, search.php-pohjat); 2) suodattimen prioriteetti on pienempi kuin WordPressin sisäänrakennetun käsittelijän (käytä arvoa 999); 3) functions.php-tiedostoa muokattiin pääteemassa lapsiteeman sijaan, eikä muutoksia otettu huomioon.

Poiminnan pituuden muuttaminen: koodi vai lisäosa?

excerpt_length-suodatin kattaa valtaosan WordPress-sivustojen tarpeista. Kaksi riviä functions.php-tiedostossa, ja poiminnan pituudesta tulee juuri sellainen kuin haluat: etusivulla, kategorioissa, haussa, mukautetuille sisältötyypeille. Erillisiä poimintalisäosia ei tarvitse etsiä vuonna 2026; ne ovat joko hylättyjä tai tarpeettomia.

Jos et ole koskaan muokannut functions.php-tiedostoa, aloita Code Snippetsilla. Se on ilmainen, turvallinen eikä riipu teemapäivityksistä. Kun pääset sinuiksi, ehdollinen logiikka funktioilla is_front_page() ja is_category() avaa hallinnan tason, jota mikään graafisen käyttöliittymän poimintalisäosa ei ole koskaan tarjonnut.