Ngadamel Petikan dina PHP atanapi WordPress: Téhnik Ngitung Kecap, Kalimah, sareng Paragraf
Nyieun excerpts dina PHP mangrupakeun tugas umum dina manajemen eusi na ngembangkeun ramatloka. Excerpt mangrupakeun versi pondok tina sapotong eusi panjang, mindeng dipaké pikeun nyadiakeun sawangan atawa kasimpulan. Pangembang PHP panginten kedah ngadamel petikan dumasar kana jumlah kecap, kalimah, atanapi paragraf. Artikel ieu ngajalajah padika pikeun ngahontal ieu, sareng prakték pangsaéna sareng nanganan kasus dimana jumlah cacah ngaleuwihan panjang eusi.
Dicutat ku Word Count
Nyieun excerpt ku cacah kecap ngawengku truncating eusi sanggeus sababaraha kecap.
function excerptByWordCount($content, $wordCount) {
$words = explode(' ', $content);
if (count($words) > $wordCount) {
$words = array_slice($words, 0, $wordCount);
$content = implode(' ', $words);
}
return $content;
}
pamakéan:
// Excerpt of first 50 words
$wordCountExcerpt = excerptByWordCount($originalContent, 50);
Praktek Pangalusna sareng Penanganan Overcounts:
- Pariksa Jumlah Kecap: Sateuacan motong, pariksa naha jumlah kecap tina eusi aslina ngaleuwihan panjang excerpt dipikahoyong. Lamun henteu, balikkeun eusi aslina.
- Hindarkeun Pegat Kecap: Pastikeun kecap panungtungan dina excerpt geus lengkep pikeun ngajaga readability.
- Tambahkeun Ellipsis: Opsional, tambahkeun hiji elipsis (
...
) di ahir lamun eusi truncated.
Dicutat ku Kalimah Jumlah
Nyieun excerpts ku cacah kalimah ngawengku ngajaga sababaraha kalimah tina eusi.
function excerptBySentenceCount($content, $sentenceCount) {
$sentences = explode('.', $content);
if (count($sentences) > $sentenceCount) {
$sentences = array_slice($sentences, 0, $sentenceCount);
$content = implode('. ', $sentences) . '.';
}
return $content;
}
pamakéan
// Excerpt of first 3 sentences
$sentenceCountExcerpt = excerptBySentenceCount($originalContent, 3);
Pikeun ngapdet excerptBySentenceCount
fungsina ngawengku kalimah kalawan tanda baca sagala di tungtung (sanes ngan titik), Anjeun bisa ngarobah fungsi pikeun ngabagi eusi ku ekspresi biasa nu cocog sagala tanda baca tungtung kalimah has, kawas titik, tanda seru, atawa tanda tanya. Ieu kumaha anjeun tiasa ngalakukeun dina PHP:
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;
}
fungsi ieu ngagunakeun preg_split
kalawan ekspresi biasa (regex) /(?<=[.!?])\s+/
nu ngabagi téks dina spasi (\s+
) anu nuturkeun tanda titik, tanda seru, atawa tanda tanya ([.!?]
). The (?<=...)
mangrupa negeskeun katingal positip anu mariksa ayana tanda baca tungtung kalimah tanpa kaasup dina pamisah. The PREG_SPLIT_NO_EMPTY
bendera ensures yén ngan potongan non-kosong anu balik.
Tungtungna, fungsi mariksa lamun karakter panungtungan tina eusi hasilna mangrupa tanda baca tungtung kalimah. Lamun henteu, éta appends periode pikeun ngajaga tanda baca ditangtoskeun di ahir excerpt nu.
Praktek Pangalusna sareng Penanganan Overcounts:
- Deteksi Kalimah anu leres: Paké titik dituturkeun ku spasi mun pamisah kalimah. Ieu ngahindarkeun pamisah kana période anu dianggo dina singgetan.
- Pariksa Jumlah Kalimah: Sarupa jeung cacah kecap, pariksa lamun jumlah kalimah tina eusi aslina geus cukup.
- Ngajaga tanda baca: Pastikeun yén petikan ditungtungan ku tanda baca anu pas, biasana titik.
Dicutat ku Jumlah Paragraf
Nyieun excerpts dumasar count paragraf ngawengku truncating eusi sanggeus sababaraha paragraf.
function excerptByParagraphCount($content, $paragraphCount) {
$paragraphs = explode("\n", $content);
if (count($paragraphs) > $paragraphCount) {
$paragraphs = array_slice($paragraphs, 0, $paragraphCount);
$content = implode("\n", $paragraphs);
}
return $content;
}
pamakéan:
// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByParagraphCount($originalContent, 2);
Praktek Pangalusna sareng Penanganan Overcounts:
- Anggo Garis Anyar pikeun Paragraf: Paragraf biasana dipisahkeun ku baris anyar (
\n
). Pastikeun eusi anjeun nuturkeun format ieu. - Pariksa Jumlah Paragraf: Validasi lamun jumlah paragraf eusi geus nyukupan pikeun excerpt.
- Hormat Struktur Eusi: Ngajaga struktur paragraf dina petikan pikeun ngajaga integritas eusi.
Dicutat ku HTML Ayat Count
Nalika kaayaan eusi HTML, anjeun bakal hoyong nimba excerpts dumasar kana <p>
tag pikeun ngajaga struktur sareng pormat eusi aslina.
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;
}
pamakéan:
// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByHtmlParagraphCount($htmlContent, 2);
Praktek Pangalusna sareng Penanganan Overcounts:
- Ungkapan Biasa pikeun Tag Cocog: make
preg_match_all
kalawan ekspresi biasa mun cocog<p>
tag. Pendekatan ieu mastikeun yén struktur sareng atribut tag paragraf dilestarikan. - Hormat Struktur HTML: Pastikeun yén excerpt ngajaga struktur HTML. Hindarkeun ngarobih tag, anu tiasa nyababkeun masalah rendering.
- Pariksa Jumlah Paragraf: Sapertos téks polos, pariksa upami jumlah paragraf tina eusi aslina cekap pikeun kutipan.
- Nanganan Tag Nested: Émut yén paragraf tiasa ngandung unsur HTML sanés sapertos tautan atanapi bentang. Pastikeun akun regex anjeun pikeun tag nested dina paragraf.
Nyiptakeun petikan dumasar kana jumlah paragraf HTML dina PHP mangrupikeun tugas anu langkung maju dibandingkeun sareng nanganan téks polos. Penting pisan pikeun ngagunakeun ekspresi biasa sacara saksama pikeun ngajaga integritas struktur HTML. Metoda ieu hususna relevan pikeun aplikasi wéb dimana eusina kedah ditampilkeun sareng pormat aslina. Salaku salawasna, sangkan méré konfirmasi panjang eusi aslina tur mertimbangkeun pangalaman pamaké nalika presenting excerpts.
Leres, WordPress gaduh set fungsi sareng fitur sorangan anu ngagampangkeun nyiptakeun kutipan, anu tiasa nyederhanakeun prosésna dibandingkeun sareng nanganan kutipan sacara manual dina PHP. Ieu tinjauan fungsi utama WordPress anu aya hubunganana sareng kutipan:
Fungsi Excerpt dina WordPress
WordPress API nawarkeun sistem mantap pikeun nanganan excerpts, sahingga sacara manual ngalaksanakeun fungsi PHP teu perlu keur paling kasus pamakéan has. WordPress nyadiakeun cara ramah-pamaké pikeun ngatur summaries pos, naha éta ngaropéa panjangna, ngarobah éta maca deui téks, atawa maké tag template pikeun mintonkeun excerpts.
the_excerpt()
Tag template WordPress ieu otomatis nyitak petikan pikeun tulisan. Biasana dianggo dina téma pikeun nampilkeun kasimpulan tulisan dina halaman arsip.
- pamakéan: tempat
the_excerpt()
dina The Loop dina file téma anjeun dimana anjeun hoyong petikan muncul. - kabiasaan: Sacara standar, éta nunjukkeun 55 kecap mimiti tulisan. Upami aya kutipan anu disetél sacara manual dina pangropéa pos, éta bakal nunjukkeun éta.
get_the_excerpt()
Pungsi ieu retrieves excerpt tanpa mintonkeun eta, mere Anjeun kontrol leuwih kumaha jeung dimana ngagunakeun eta.
- pamakéan:
get_the_excerpt($post)
bisa dipaké pikeun nyokot excerpt tina pos husus. - kustomisasi: Anjeun tiasa ngamanipulasi senar anu dipulangkeun upami diperyogikeun sateuacan nampilkeunana.
Kustomisasi Panjang Kutipan
WordPress ngidinan Anjeun pikeun ngarobah panjang excerpt standar via 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');
Ngatur More Tag jeung Excerpt More Text
the_content('Read more')
Pungsi ieu mintonkeun eusi nepi ka encounters tag "leuwih". Éta kapaké pikeun nunjukkeun kutipan panjang khusus dina pangropéa kontén.
Kustomisasi Kutipan Langkung seueur téks
Anjeun tiasa nyaluyukeun téks anu nembongan dina tungtung petikan (sapertos […]
) ku ngagunakeun excerpt_more
filter.
function custom_excerpt_more($more) {
return '...'; // Replace the default [...] with ...
}
add_filter('excerpt_more', 'custom_excerpt_more');
Nanganan HTML dina Excerpts
excerpts WordPress mangrupakeun téks polos sacara standar. Lamun perlu pikeun ngawétkeun tag HTML dina excerpts, anjeun kudu nyieun hiji fungsi custom atawa ngagunakeun plugin dirancang pikeun tujuan ieu.
Sanajan kitu, coding custom atawa plugins bisa jadi diperlukeun pikeun syarat canggih kawas preserving tag HTML dina excerpts atawa nyieun excerpts dumasar kana elemen husus kawas kalimat atawa paragraf.