Otteiden luominen PHP:llä tai WordPressillä: Sana-, lause- ja kappalelaskentatekniikat
Luodaan otteita sisään PHP on yleinen tehtävä sisällönhallinnassa ja verkkosivujen kehittämisessä. Ote on lyhennetty versio pidemmästä sisällöstä, jota käytetään usein esikatselun tai yhteenvedon tarjoamiseen. PHP-kehittäjien on ehkä luotava otteita sanojen, lauseiden tai kappalemäärien perusteella. Tässä artikkelissa tarkastellaan menetelmiä tämän saavuttamiseksi sekä parhaita käytäntöjä ja tapauksia, joissa määrä ylittää sisällön pituuden.
Ote Word Countista
Otteen luominen sanamäärän mukaan edellyttää sisällön lyhentämistä tietyn sanamäärän jälkeen.
function excerptByWordCount($content, $wordCount) {
$words = explode(' ', $content);
if (count($words) > $wordCount) {
$words = array_slice($words, 0, $wordCount);
$content = implode(' ', $words);
}
return $content;
}
Käyttö:
// Excerpt of first 50 words
$wordCountExcerpt = excerptByWordCount($originalContent, 50);
Parhaat käytännöt ja ylilaskujen käsittely:
- Tarkista sanamäärä: Tarkista ennen katkaisua, ylittääkö alkuperäisen sisällön sanamäärä halutun otteen pituuden. Jos ei, palauta alkuperäinen sisältö.
- Vältä sanojen rikkomista: Varmista luettavuuden säilyttämiseksi, että otteen viimeinen sana on täydellinen.
- Lisää ellipsi: Lisää valinnaisesti ellipsi (
...
) lopussa, jos sisältö on katkaistu.
Ote lausekkeesta
Otteiden luominen lauseiden lukumäärän mukaan edellyttää, että tietty määrä lauseita säilytetään sisällöstä.
function excerptBySentenceCount($content, $sentenceCount) {
$sentences = explode('.', $content);
if (count($sentences) > $sentenceCount) {
$sentences = array_slice($sentences, 0, $sentenceCount);
$content = implode('. ', $sentences) . '.';
}
return $content;
}
Käyttö
// Excerpt of first 3 sentences
$sentenceCountExcerpt = excerptBySentenceCount($originalContent, 3);
Voit päivittää excerptBySentenceCount
-funktio sisällyttääksesi lauseita, joiden lopussa on välimerkkejä (ei vain pisteitä), voit muokata toimintoa jakaaksesi sisällön säännöllisellä lausekkeella, joka vastaa mitä tahansa tyypillistä lauseen päättyvää välimerkkiä, kuten pistettä, huutomerkkiä tai kysymysmerkkiä. Näin voit tehdä sen PHP:ssä:
function excerptBySentenceCount($content, $sentenceCount) {
// Use a regular expression to split the content by sentence-ending punctuation
$sentences = preg_split('/(?<=[.!?])\s+/', $content, -1, PREG_SPLIT_NO_EMPTY);
if (count($sentences) > $sentenceCount) {
$sentences = array_slice($sentences, 0, $sentenceCount);
$content = implode(' ', $sentences);
// Check the last character to ensure it ends with punctuation
if (!preg_match('/[.!?]$/', $content)) {
$content .= '.';
}
}
return $content;
}
Tämä toiminto käyttää preg_split
säännöllisellä lausekkeella (regex) /(?<=[.!?])\s+/
joka jakaa tekstin välilyönneiksi (\s+
), jotka seuraavat pistettä, huutomerkkiä tai kysymysmerkkiä ([.!?]
). (?<=...)
on positiivinen lookback-vahvistus, joka tarkistaa lauseen loppujen välimerkkien olemassaolon sisällyttämättä niitä jakoon. The PREG_SPLIT_NO_EMPTY
lippu varmistaa, että vain ei-tyhjät palat palautetaan.
Lopuksi funktio tarkistaa, onko tuloksena olevan sisällön viimeinen merkki lauseen päättävä välimerkki. Jos ei, se lisää pisteen, jotta otteen loppuun säilyy oikea välimerkki.
Parhaat käytännöt ja ylilaskujen käsittely:
- Oikea lauseen tunnistus: Käytä pistettä ja välilyöntiä lauseiden jakamiseen. Näin vältetään jakaminen lyhenteissä käytettyihin pisteisiin.
- Tarkista lauseiden määrä: Samoin kuin sanamäärä, tarkista, onko alkuperäisen sisällön lauseiden määrä riittävä.
- Säilytä välimerkit: Varmista, että ote loppuu oikeilla välimerkeillä, yleensä pisteellä.
Ote kappalemäärästä
Katkelmien luominen kappalemäärän mukaan edellyttää sisällön lyhentämistä tietyn kappalemäärän jälkeen.
function excerptByParagraphCount($content, $paragraphCount) {
$paragraphs = explode("\n", $content);
if (count($paragraphs) > $paragraphCount) {
$paragraphs = array_slice($paragraphs, 0, $paragraphCount);
$content = implode("\n", $paragraphs);
}
return $content;
}
Käyttö:
// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByParagraphCount($originalContent, 2);
Parhaat käytännöt ja ylilaskujen käsittely:
- Käytä uusia rivejä kappaleissa: Kappaleet erotetaan yleensä uusilla riveillä (
\n
). Varmista, että sisältösi noudattaa tätä muotoa. - Tarkista kappalemäärä: Tarkista, onko sisällön kappalemäärä riittävä otteeseen.
- Kunnioita sisältörakennetta: Säilytä otteen kappaleiden rakenne sisällön eheyden säilyttämiseksi.
Ote HTML-kappaleiden määrästä
Kun käsittelet HTML-sisältöä, haluat poimia otteita sen perusteella <p>
-tunnisteet säilyttämään alkuperäisen sisällön rakenteen ja muotoilun.
function excerptByHtmlParagraphCount($content, $paragraphCount) {
preg_match_all('/<p[^>]*>.*?<\/p>/', $content, $paragraphs);
$paragraphs = $paragraphs[0];
if (count($paragraphs) > $paragraphCount) {
$paragraphs = array_slice($paragraphs, 0, $paragraphCount);
$content = implode(' ', $paragraphs);
}
return $content;
}
Käyttö:
// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByHtmlParagraphCount($htmlContent, 2);
Parhaat käytännöt ja ylilaskujen käsittely:
- Säännölliset lausekkeet tunnistehaulle: Käyttää
preg_match_all
säännöllisen lausekkeen kanssa<p>
tunnisteet. Tämä lähestymistapa varmistaa, että kappaletunnisteiden rakenne ja attribuutit säilyvät. - Kunnioita HTML-rakennetta: Varmista, että ote säilyttää HTML-rakenteen. Vältä tagien rikkomista, mikä voi johtaa renderöintiongelmiin.
- Tarkista kappalemäärä: Kuten pelkkää tekstiä käytettäessä, tarkista, riittääkö alkuperäisen sisällön kappalemäärä otteeseen.
- Käsittele sisäkkäisiä tunnisteita: Muista, että kappaleet voivat sisältää muita HTML-elementtejä, kuten linkkejä tai jaksoja. Varmista, että säännöllinen lauseke sisältää sisäkkäisiä tageja kappaleiden sisällä.
Otteiden luominen PHP:n HTML-kappalemäärän perusteella on edistyneempi tehtävä verrattuna pelkän tekstin käsittelyyn. On välttämätöntä käyttää säännöllisiä lausekkeita huolellisesti HTML-rakenteen eheyden säilyttämiseksi. Tämä menetelmä on erityisen tärkeä verkkosovelluksissa, joissa sisältö on näytettävä alkuperäisessä muotoilussaan. Kuten aina, tarkista alkuperäisen sisällön pituus ja ota huomioon käyttökokemus, kun esität otteita.
Kyllä, WordPressillä on omat toiminnot ja ominaisuudet, jotka helpottavat otteiden luomista, mikä voi yksinkertaistaa prosessia huomattavasti verrattuna otteiden manuaaliseen käsittelyyn PHP:ssä. Tässä on yleiskatsaus otteisiin liittyvistä WordPressin tärkeimmistä toiminnoista:
Otefunktio WordPressissä
WordPress API tarjoaa vankan järjestelmän otteiden käsittelyyn, mikä tekee PHP-toimintojen manuaalisesta toteuttamisesta tarpeetonta useimmissa käyttötapauksissa. WordPress tarjoaa käyttäjäystävällisen tavan hallita viestien yhteenvetoja, olipa kyse sitten pituuden mukauttamisesta tai muuttamisesta Lue lisää tekstiä tai mallitunnisteita näyttämään otteita.
the_excerpt()
Tämä WordPress-mallitunniste tulostaa automaattisesti otteen viestistä. Sitä käytetään yleisesti teemoissa viestien yhteenvedon näyttämiseen arkistosivuilla.
- Käyttö: Paikka
the_excerpt()
The Loop -osassa teematiedostoissasi, missä haluat otteen näkyvän. - Käytös: Oletuksena se näyttää viestin ensimmäiset 55 sanaa. Jos tekstieditorissa on manuaalisesti asetettu ote, se näyttää sen sijaan.
get_the_excerpt()
Tämä toiminto hakee otteen näyttämättä sitä, jolloin voit hallita paremmin, miten ja missä sitä käytetään.
- Käyttö:
get_the_excerpt($post)
voidaan käyttää otteen tietystä viestistä hakemiseen. - Räätälöinti: Voit muokata palautettua merkkijonoa tarpeen mukaan ennen sen näyttämistä.
Otteen pituuden mukauttaminen
WordPress mahdollistaa otteen oletuspituuden muuttamisen excerpt_length
suodattaa.
function custom_excerpt_length($length) {
return 20; // Return 20 words as the new excerpt length
}
add_filter('excerpt_length', 'custom_excerpt_length');
Lisää tunnisteita ja otteita lisää tekstiä
the_content('Read more')
Tämä toiminto näyttää sisällön, kunnes se kohtaa "lisää" -tunnisteen. Se on hyödyllinen, kun haluat näyttää mukautetun pituisen otteen suoraan sisällönmuokkausohjelmassa.
Otteen mukauttaminen Lisää tekstiä
Voit mukauttaa otteen lopussa näkyvää tekstiä (esim […]
) käyttämällä excerpt_more
suodattaa.
function custom_excerpt_more($more) {
return '...'; // Replace the default [...] with ...
}
add_filter('excerpt_more', 'custom_excerpt_more');
HTML:n käsittely otteissa
WordPress-otteet ovat oletuksena pelkkää tekstiä. Jos haluat säilyttää HTML-tunnisteet otteissa, sinun on luotava mukautettu funktio tai käytettävä tähän tarkoitukseen suunniteltua laajennusta.
Muokattuja koodauksia tai laajennuksia voidaan kuitenkin tarvita lisävaatimuksissa, kuten HTML-tunnisteiden säilyttäminen otteissa tai otteiden luominen tiettyjen elementtien, kuten lauseiden tai kappaleiden, perusteella.