Inhoud bemarking

Skep uittreksels in PHP of WordPress: Woord-, sin- en paragraaftellingtegnieke

Skep uittreksels in PHP is 'n algemene taak in inhoudbestuur en webwerf-ontwikkeling. 'n Uittreksel is 'n verkorte weergawe van 'n langer stuk inhoud, wat dikwels gebruik word om 'n voorskou of opsomming te verskaf. PHP-ontwikkelaars sal dalk uittreksels moet skep wat gebaseer is op woord-, sinne- of paragraaftellings. Hierdie artikel ondersoek metodes om dit te bereik, tesame met beste praktyke en hantering van gevalle waar die telgetal die inhoudslengte oorskry.

Uittreksel deur Woordtelling

Die skep van 'n uittreksel volgens woordtelling behels die afkap van die inhoud na 'n sekere aantal woorde.

function excerptByWordCount($content, $wordCount) {
    $words = explode(' ', $content);
    if (count($words) > $wordCount) {
        $words = array_slice($words, 0, $wordCount);
        $content = implode(' ', $words);
    }
    return $content;
}

Gebruik:

// Excerpt of first 50 words
$wordCountExcerpt = excerptByWordCount($originalContent, 50); 

Beste praktyke en hantering van oortellings:

  • Kontroleer Woordtelling: Voordat u afkap, kyk of die woordtelling van die oorspronklike inhoud die verlangde uittreksellengte oorskry. Indien nie, gee die oorspronklike inhoud terug.
  • Vermy brekende woorde: Maak seker dat die laaste woord in die uittreksel volledig is om leesbaarheid te behou.
  • Voeg 'n ellips by: Voeg opsioneel 'n ellips (...) aan die einde as die inhoud afgekap is.

Uittreksel volgens Sinnetelling

Om uittreksels volgens sintelling te skep, behels dat 'n sekere aantal sinne uit die inhoud gehou word.

function excerptBySentenceCount($content, $sentenceCount) {
    $sentences = explode('.', $content);
    if (count($sentences) > $sentenceCount) {
        $sentences = array_slice($sentences, 0, $sentenceCount);
        $content = implode('. ', $sentences) . '.';
    }
    return $content;
}

Gebruik

// Excerpt of first 3 sentences
$sentenceCountExcerpt = excerptBySentenceCount($originalContent, 3); 

Om die op te dateer excerptBySentenceCount funksie om sinne met enige leestekens aan die einde in te sluit (nie net punte nie), jy kan die funksie verander om die inhoud te verdeel deur 'n gereelde uitdrukking wat by enige tipiese sin-eindige leestekens pas, soos 'n punt, uitroepteken of vraagteken. Hier is hoe u dit in PHP kan doen:

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

Hierdie funksie gebruik preg_split met 'n gereelde uitdrukking (regeks) /(?<=[.!?])\s+/ wat die teks by spasies verdeel (\s+) wat op 'n punt, uitroepteken of vraagteken volg ([.!?]) Die (?<=...) is 'n positiewe kyk-agter-bewering wat kontroleer vir die teenwoordigheid van sin eindigende leestekens sonder om dit in die verdeling in te sluit. Die PREG_SPLIT_NO_EMPTY vlag verseker dat slegs nie-leë stukke terugbesorg word.

Laastens kontroleer die funksie of die laaste karakter van die resulterende inhoud 'n sin eindigende leestekens is. Indien nie, voeg dit 'n tydperk by om behoorlike leestekens aan die einde van die uittreksel te handhaaf.

Beste praktyke en hantering van oortellings:

  • Behoorlike sinsbespeuring: Gebruik 'n punt gevolg deur 'n spasie om sinne te verdeel. Dit vermy die verdeling in periodes wat in afkortings gebruik word.
  • Kontroleer die aantal sinne: Soortgelyk aan woordtelling, verifieer of die sinstelling van die oorspronklike inhoud voldoende is.
  • Handhaaf leestekens: Maak seker dat die uittreksel met behoorlike leestekens eindig, gewoonlik 'n punt.

Uittreksel deur Paragraaftelling

Die skep van uittreksels volgens paragraaftelling behels die afkap van die inhoud na 'n sekere aantal paragrawe.

function excerptByParagraphCount($content, $paragraphCount) {
    $paragraphs = explode("\n", $content);
    if (count($paragraphs) > $paragraphCount) {
        $paragraphs = array_slice($paragraphs, 0, $paragraphCount);
        $content = implode("\n", $paragraphs);
    }
    return $content;
}

Gebruik:

// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByParagraphCount($originalContent, 2); 

Beste praktyke en hantering van oortellings:

  • Gebruik nuwe reëls vir paragrawe: Paragrawe word tipies geskei deur nuwe reëls (\n). Maak seker dat jou inhoud hierdie formaat volg.
  • Kontroleer Paragraaftelling: Bevestig of die paragraaftelling van die inhoud voldoende is vir die uittreksel.
  • Respek inhoudstruktuur: Handhaaf die struktuur van die paragrawe in die uittreksel om die inhoud se integriteit te bewaar.

Uittreksel deur HTML Paragraaftelling

Wanneer jy met HTML-inhoud te doen het, sal jy uittreksels wil onttrek wat gebaseer is op die <p> etikette om die struktuur en formatering van die oorspronklike inhoud te handhaaf.

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

Gebruik:

// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByHtmlParagraphCount($htmlContent, 2); 

Beste praktyke en hantering van oortellings:

  • Gereelde uitdrukkings vir merkerpassing: Gebruik preg_match_all met 'n reëlmatige uitdrukking om te pas <p> etikette. Hierdie benadering verseker dat die struktuur en kenmerke van die paragraafetikette behoue ​​bly.
  • Respekteer HTML-struktuur:
    Maak seker dat die uittreksel die HTML-struktuur behou. Vermy die breek van merkers, wat kan lei tot lewering probleme.
  • Kontroleer Paragraaftelling: Soos met gewone teks, verifieer of die paragraaftelling van die oorspronklike inhoud voldoende is vir die uittreksel.
  • Hanteer geneste merkers: Onthou dat paragrawe ander HTML-elemente soos skakels of streke kan bevat. Maak seker dat jou regex rekening hou met geneste merkers binne paragrawe.

Die skep van uittreksels gebaseer op HTML-paragraaftelling in PHP is 'n meer gevorderde taak in vergelyking met die hantering van gewone teks. Dit is noodsaaklik om gereelde uitdrukkings versigtig te gebruik om die integriteit van die HTML-struktuur te handhaaf. Hierdie metode is veral relevant vir webtoepassings waar die inhoud met sy oorspronklike formatering vertoon moet word. Bevestig soos altyd die lengte van die oorspronklike inhoud en neem gebruikerservaring in ag wanneer uittreksels aangebied word.

Ja, WordPress het sy eie stel funksies en kenmerke wat die skep van uittreksels vergemaklik, wat die proses aansienlik kan vereenvoudig in vergelyking met die handhantering van uittreksels in PHP. Hier is 'n oorsig van die belangrikste WordPress-funksies wat met uittreksels verband hou:

Die uittrekselfunksie in WordPress

Die WordPress API bied 'n robuuste stelsel vir die hantering van uittreksels, wat handmatige implementering van PHP-funksies onnodig maak vir die meeste tipiese gebruiksgevalle. WordPress bied 'n gebruikersvriendelike manier om posopsommings te bestuur, of dit nou die lengte aanpas, die verandering van die lees meer teks, of die gebruik van sjabloonetikette om uittreksels te vertoon.

the_excerpt()

Hierdie WordPress-sjabloonmerker druk outomaties 'n uittreksel vir 'n plasing. Dit word algemeen in temas gebruik om 'n posopsomming op argiefbladsye te vertoon.

  • Gebruik: Plek the_excerpt() binne The Loop in jou temalêers waar jy wil hê die uittreksel moet verskyn.
  • gedrag: By verstek wys dit die eerste 55 woorde van die pos. As daar 'n handmatige uittreksel in die posredigeerder is, sal dit dit eerder vertoon.

get_the_excerpt()

Hierdie funksie haal die uittreksel op sonder om dit te vertoon, wat jou meer beheer gee oor hoe en waar om dit te gebruik.

  • Gebruik: get_the_excerpt($post) kan gebruik word om die uittreksel van 'n spesifieke pos te gaan haal.
  • Aanpassing: Jy kan die teruggekeerde string manipuleer soos nodig voordat jy dit vertoon.

Pas uittreksellengte aan

WordPress laat jou toe om die verstek uittreksel lengte te verander via die excerpt_length filter.

function custom_excerpt_length($length) {
    return 20; // Return 20 words as the new excerpt length
}
add_filter('excerpt_length', 'custom_excerpt_length');

Bestuur meer merker en haal meer teks uit

the_content('Read more')

Hierdie funksie vertoon die inhoud totdat dit 'n "meer" merker teëkom. Dit is nuttig om 'n uittreksel van pasgemaakte lengte direk binne die inhoudredigeerder te wys.

Pas uittreksel meer teks aan

Jy kan die teks aanpas wat aan die einde van 'n uittreksel verskyn (soos […]) deur die gebruik van die excerpt_more filter.

function custom_excerpt_more($more) {
    return '...'; // Replace the default [...] with ...
}
add_filter('excerpt_more', 'custom_excerpt_more');

Hantering van HTML in uittreksels

WordPress-uittreksels is by verstek gewone teks. As jy HTML-etikette in uittreksels moet bewaar, moet jy 'n pasgemaakte funksie skep of 'n inprop gebruik wat vir hierdie doel ontwerp is.

Gepasmaakte kodering of inproppe kan egter nodig wees vir gevorderde vereistes soos die behoud van HTML-etikette in uittreksels of die skep van uittreksels gebaseer op spesifieke elemente soos sinne of paragrawe.

Douglas Karr

Douglas Karr is CMO van Maak INSIGTE oop en die stigter van die Martech Zone. Douglas het tientalle suksesvolle MarTech-opstartondernemings gehelp, het gehelp met die omsigtigheidsondersoek van meer as $5 miljard in Martech-verkrygings en -beleggings, en gaan voort om maatskappye te help met die implementering en outomatisering van hul verkoops- en bemarkingstrategieë. Douglas is 'n internasionaal erkende digitale transformasie en MarTech deskundige en spreker. Douglas is ook 'n gepubliseerde skrywer van 'n Dummie-gids en 'n besigheidsleierskapboek.

verwante Artikels

Terug na bo knoppie
Sluiting

Advertensieblok bespeur

Martech Zone is in staat om hierdie inhoud gratis aan u te verskaf, want ons verdien ons webwerf deur advertensie-inkomste, geaffilieerde skakels en borgskappe. Ons sal dit waardeer as jy jou advertensieblokkering sal verwyder terwyl jy ons webwerf bekyk.