Content Marketing

Kivonatok készítése PHP-ben vagy WordPress-ben: szó-, mondat- és bekezdésszámlálási technikák

Kivonatok készítése a PHP gyakori feladat a tartalomkezelésben és a weboldalfejlesztésben. A kivonat egy hosszabb tartalom rövidített változata, amelyet gyakran előnézet vagy összefoglaló biztosítására használnak. Előfordulhat, hogy a PHP-fejlesztőknek kivonatokat kell készíteniük a szavak, mondatok vagy bekezdések száma alapján. Ez a cikk megvizsgálja ennek elérésére szolgáló módszereket, valamint a bevált gyakorlatokat és az olyan esetek kezelését, amikor a számok száma meghaladja a tartalom hosszát.

Részlet a Szószámlálástól

A kivonat szószám alapján történő létrehozása magában foglalja a tartalom csonkolását bizonyos számú szó után.

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

Használat:

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

A legjobb gyakorlatok és a túlszámlálások kezelése:

  • Szószám ellenőrzése: A csonkítás előtt ellenőrizze, hogy az eredeti tartalom szószáma meghaladja-e a kívánt kivonathosszt. Ha nem, küldje vissza az eredeti tartalmat.
  • Kerülje a szavak törését: Az olvashatóság megőrzése érdekében ügyeljen arra, hogy a kivonat utolsó szava teljes legyen.
  • Ellipszis hozzáadása: Opcionálisan adjon hozzá egy ellipszist (...) a végén, ha a tartalom csonka.

Kivonat a mondatszámlálóból

A kivonatok mondatszám szerinti létrehozása bizonyos számú mondat tartalomból való megtartását jelenti.

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

Használat

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

A frissítéshez a excerptBySentenceCount függvényt, hogy bármilyen írásjelet tartalmazó mondatokat is tartalmazzon a végén (nem csak pontokat), akkor módosíthatja a funkciót, hogy a tartalmat egy olyan reguláris kifejezéssel bontsa fel, amely megfelel bármilyen tipikus mondatvégi írásjelnek, például pontnak, felkiáltójelnek vagy kérdőjelnek. Íme, hogyan teheti ezt meg PHP-ben:

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

Ez a funkció használja preg_split reguláris kifejezéssel (regex) /(?<=[.!?])\s+/ amely szóközökre osztja a szöveget (\s+), amelyek pontot, felkiáltójelet vagy kérdőjelet követnek ([.!?]). A (?<=...) egy pozitív kitekintés az állítás mögé, amely ellenőrzi a mondatvégi írásjelek jelenlétét anélkül, hogy bevenné a felosztásba. A PREG_SPLIT_NO_EMPTY zászló biztosítja, hogy csak a nem üres darabokat küldjék vissza.

Végül a függvény ellenőrzi, hogy az eredményül kapott tartalom utolsó karaktere mondatvégi írásjel-e. Ha nem, akkor a kivonat végén pontot fűz a megfelelő írásjelek megőrzéséhez.

A legjobb gyakorlatok és a túlszámlálások kezelése:

  • Megfelelő mondatfelismerés: A mondatok felosztásához használjon pontot, majd szóközt. Ezzel elkerülhető a rövidítésekben használt pontokra bontás.
  • Mondatszám ellenőrzése: A szószámhoz hasonlóan ellenőrizze, hogy az eredeti tartalom mondatszáma elegendő-e.
  • Írásjelek megőrzése: Ügyeljen arra, hogy a kivonat megfelelő írásjelekkel, általában ponttal végződjön.

Kivonat a bekezdésszámból

A bekezdésszám alapján történő kivonatok létrehozása bizonyos számú bekezdés után a tartalom csonkolását jelenti.

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

Használat:

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

A legjobb gyakorlatok és a túlszámlálások kezelése:

  • Használjon új sorokat a bekezdésekhez: A bekezdéseket általában új sorok választják el (\n). Győződjön meg arról, hogy a tartalom ezt a formátumot követi.
  • Ellenőrizze a bekezdések számát: Érvényesítse, hogy a tartalom bekezdésszáma megfelelő-e a kivonathoz.
  • Tartsa tiszteletben a tartalom szerkezetét: A tartalom integritásának megőrzése érdekében tartsa fenn a kivonat bekezdéseinek szerkezetét.

Kivonat a HTML bekezdésszámból

Ha HTML-tartalommal foglalkozik, érdemes kivonatokat kivonni a <p> címkéket az eredeti tartalom szerkezetének és formázásának megőrzéséhez.

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

Használat:

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

A legjobb gyakorlatok és a túlszámlálások kezelése:

  • Szabályos kifejezések címkeegyezéshez: Felhasználás preg_match_all megfelelő reguláris kifejezéssel <p> címkéket. Ez a megközelítés biztosítja a bekezdéscímkék szerkezetének és attribútumainak megőrzését.
  • Tartsa tiszteletben a HTML szerkezetét:
    Győződjön meg arról, hogy a kivonat megtartja a HTML-struktúrát. Kerülje a címkék feltörését, ami megjelenítési problémákhoz vezethet.
  • Ellenőrizze a bekezdések számát: Az egyszerű szöveghez hasonlóan ellenőrizze, hogy az eredeti tartalom bekezdésszáma elegendő-e a kivonathoz.
  • Beágyazott címkék kezelése: Ne feledje, hogy a bekezdések tartalmazhatnak más HTML-elemeket, például hivatkozásokat vagy szakaszokat. Gondoskodjon arról, hogy a reguláris kifejezések a bekezdéseken belüli beágyazott címkéket tartalmazzák.

A kivonatok készítése HTML bekezdésszám alapján PHP-ben fejlettebb feladat a sima szövegek kezeléséhez képest. A HTML-struktúra integritásának megőrzéséhez elengedhetetlen a reguláris kifejezések körültekintő használata. Ez a módszer különösen fontos azoknál a webes alkalmazásoknál, ahol a tartalmat az eredeti formázással kell megjeleníteni. Mint mindig, ellenőrizze az eredeti tartalom hosszát, és vegye figyelembe a felhasználói élményt a részletek bemutatásakor.

Igen, a WordPress saját funkciókkal és szolgáltatásokkal rendelkezik, amelyek megkönnyítik a kivonatok létrehozását, ami nagyban leegyszerűsítheti a folyamatot a PHP-ben történő kivonatok kézi kezeléséhez képest. Íme egy áttekintés a kivonatokhoz kapcsolódó legfontosabb WordPress-funkciókról:

A kivonat funkció a WordPressben

A WordPress API robusztus rendszert kínál a kivonatok kezelésére, így a legtöbb tipikus használati esetre szükségtelenné teszi a PHP függvények kézi megvalósítását. A WordPress felhasználóbarát módot biztosít a bejegyzések összefoglalóinak kezelésére, legyen szó a hossz testreszabásáról vagy módosításáról Klikk ide szöveget, vagy sabloncímkéket használ a kivonatok megjelenítéséhez.

the_excerpt()

Ez a WordPress sabloncímke automatikusan kinyomtat egy bejegyzés kivonatát. Témákban gyakran használják bejegyzés-összefoglaló megjelenítésére az archív oldalakon.

  • Használat: Hely the_excerpt() a The Loop-on belül a témafájlokban, ahol meg szeretné jeleníteni a részletet.
  • viselkedés: Alapértelmezés szerint a bejegyzés első 55 szavát mutatja. Ha van egy manuálisan beállított kivonat a bejegyzésszerkesztőben, akkor azt fogja megjeleníteni.

get_the_excerpt()

Ez a funkció megjelenítése nélkül kéri le a kivonatot, így jobban szabályozhatja, hogyan és hol használja azt.

  • Használat: get_the_excerpt($post) egy adott bejegyzés kivonatának lekérésére használható.
  • Testreszabás: A visszaadott karakterláncot szükség szerint módosíthatja a megjelenítés előtt.

A kivonat hosszának testreszabása

A WordPress lehetővé teszi az alapértelmezett kivonat hosszának megváltoztatását a excerpt_length szűrő.

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

Több címke és szövegrészlet kezelése

the_content('Read more')

Ez a funkció addig jeleníti meg a tartalmat, amíg az „tovább” címkével nem találkozik. Hasznos lehet egyéni hosszúságú kivonatok megjelenítéséhez közvetlenül a tartalomszerkesztőben.

További szövegrészlet testreszabása

Testreszabhatja a kivonat végén megjelenő szöveget (pl […]) segítségével excerpt_more szűrő.

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

HTML kezelése kivonatokban

A WordPress kivonatok alapértelmezés szerint egyszerű szövegesek. Ha meg kell őriznie a HTML címkéket kivonatokban, akkor létre kell hoznia egy egyedi függvényt, vagy használjon egy erre a célra kialakított bővítményt.

Egyéni kódolásra vagy beépülő modulokra azonban szükség lehet olyan speciális követelmények teljesítéséhez, mint a HTML-címkék megőrzése a kivonatokban vagy a kivonatok létrehozása meghatározott elemek, például mondatok vagy bekezdések alapján.

Douglas Karr

Douglas Karr CMO of OpenINSIGHTS és az alapítója a Martech Zone. Douglas több tucat sikeres MarTech startupnak segített, több mint 5 milliárd dolláros átvilágításban segédkezett a Martech akvizíciókban és befektetésekben, és továbbra is segíti a vállalatokat értékesítési és marketingstratégiáik megvalósításában és automatizálásában. Douglas nemzetközileg elismert digitális átalakulás és MarTech szakértő és előadó. Douglas egy Dummie's Guide és egy üzleti vezetői könyv szerzője is.

Kapcsolódó cikkek

Vissza a lap tetejére gombra
közel

Adblock észlelve

Martech Zone ingyenesen tudja biztosítani Önnek ezt a tartalmat, mivel webhelyünkkel bevételt szerezünk hirdetési bevételek, társult linkek és szponzorálás révén. Nagyra értékelnénk, ha eltávolítaná hirdetésblokkolóját, miközben megtekinti webhelyünket.