Izvilkumu izveide PHP vai WordPress: vārdu, teikumu un rindkopu skaitīšanas metodes
Izvilkumu izveide iekšā PHP ir izplatīts uzdevums satura pārvaldībā un vietņu izstrādē. Izvilkums ir garāka satura saīsināta versija, ko bieži izmanto, lai nodrošinātu priekšskatījumu vai kopsavilkumu. PHP izstrādātājiem, iespējams, būs jāizveido fragmenti, pamatojoties uz vārdu, teikumu vai rindkopu skaitu. Šajā rakstā ir aplūkotas metodes, kā to panākt, kā arī paraugprakse un to gadījumu apstrāde, kad skaita skaits pārsniedz satura garumu.
Fragments no vārdu skaita
Izvilkuma izveide pēc vārdu skaita ietver satura saīsināšanu pēc noteikta vārdu skaita.
function excerptByWordCount($content, $wordCount) {
$words = explode(' ', $content);
if (count($words) > $wordCount) {
$words = array_slice($words, 0, $wordCount);
$content = implode(' ', $words);
}
return $content;
}
Lietošana:
// Excerpt of first 50 words
$wordCountExcerpt = excerptByWordCount($originalContent, 50);
Paraugprakse un pārskaitījumu apstrāde:
- Pārbaudiet vārdu skaitu: Pirms saīsināšanas pārbaudiet, vai sākotnējā satura vārdu skaits pārsniedz vēlamo fragmenta garumu. Ja nē, atgrieziet sākotnējo saturu.
- Izvairieties lauzt vārdus: Pārliecinieties, vai pēdējais vārds fragmentā ir pilnīgs, lai saglabātu lasāmību.
- Pievienojiet elipsi: Pēc izvēles pievienojiet elipsi (
...
) beigās, ja saturs ir saīsināts.
Fragments pēc teikumu skaita
Lai izveidotu fragmentus pēc teikumu skaita, saturā ir jāpatur noteikts teikumu skaits.
function excerptBySentenceCount($content, $sentenceCount) {
$sentences = explode('.', $content);
if (count($sentences) > $sentenceCount) {
$sentences = array_slice($sentences, 0, $sentenceCount);
$content = implode('. ', $sentences) . '.';
}
return $content;
}
Lietošana
// Excerpt of first 3 sentences
$sentenceCountExcerpt = excerptBySentenceCount($originalContent, 3);
Lai atjauninātu excerptBySentenceCount
funkciju, lai iekļautu teikumus ar jebkādām pieturzīmēm beigās (ne tikai punktus), varat modificēt funkciju, lai sadalītu saturu ar regulāru izteiksmi, kas atbilst jebkurai tipiskai teikuma beigu pieturzīmei, piemēram, punktam, izsaukuma zīmei vai jautājuma zīmei. Lūk, kā to var izdarīt 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;
}
Šī funkcija izmanto preg_split
ar regulāru izteiksmi (regex) /(?<=[.!?])\s+/
kas sadala tekstu pa atstarpēm (\s+
), kas seko punktam, izsaukuma zīmei vai jautājuma zīmei ([.!?]
). (?<=...)
ir pozitīvs skatījums uz apgalvojumu, kas pārbauda teikuma beigu pieturzīmju esamību, neiekļaujot to sadalē. The PREG_SPLIT_NO_EMPTY
karogs nodrošina, ka tiek atgriezti tikai netukši gabali.
Visbeidzot, funkcija pārbauda, vai iegūtā satura pēdējā rakstzīme ir teikuma beigu pieturzīme. Ja nē, izraksta beigās tiek pievienots punkts, lai saglabātu pareizu pieturzīmju lietošanu.
Paraugprakse un pārskaitījumu apstrāde:
- Pareiza teikuma noteikšana: Lai sadalītu teikumus, izmantojiet punktu, kam seko atstarpe. Tas ļauj izvairīties no sadalīšanas saīsinājumos izmantotajos periodos.
- Pārbaudiet teikumu skaitu: Līdzīgi kā vārdu skaits, pārbaudiet, vai sākotnējā satura teikumu skaits ir pietiekams.
- Saglabāt pieturzīmes: Pārliecinieties, ka fragments beidzas ar pareizām pieturzīmēm, parasti ar punktu.
Izvilkums pēc rindkopu skaita
Lai izveidotu fragmentus pēc rindkopu skaita, saturs ir jāsaīsina pēc noteikta rindkopu skaita.
function excerptByParagraphCount($content, $paragraphCount) {
$paragraphs = explode("\n", $content);
if (count($paragraphs) > $paragraphCount) {
$paragraphs = array_slice($paragraphs, 0, $paragraphCount);
$content = implode("\n", $paragraphs);
}
return $content;
}
Lietošana:
// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByParagraphCount($originalContent, 2);
Paraugprakse un pārskaitījumu apstrāde:
- Rindkopām izmantojiet jaunas rindiņas: Rindkopas parasti tiek atdalītas ar jaunām rindām (
\n
). Pārliecinieties, vai jūsu saturs atbilst šim formātam. - Pārbaudiet rindkopu skaitu: Pārbaudiet, vai satura rindkopu skaits ir pietiekams fragmentam.
- Ievērojiet satura struktūru: Saglabājiet fragmenta rindkopu struktūru, lai saglabātu satura integritāti.
Fragments pēc HTML rindkopu skaita
Strādājot ar HTML saturu, vēlēsities izvilkt fragmentus, pamatojoties uz <p>
tagus, lai saglabātu sākotnējā satura struktūru un formatējumu.
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;
}
Lietošana:
// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByHtmlParagraphCount($htmlContent, 2);
Paraugprakse un pārskaitījumu apstrāde:
- Regulāras izteiksmes tagu atbilstības noteikšanai: lietošana
preg_match_all
ar regulāru izteiksmi<p>
tagus. Šī pieeja nodrošina, ka tiek saglabāta rindkopas tagu struktūra un atribūti. - Ievērojiet HTML struktūru: Pārliecinieties, vai fragments saglabā HTML struktūru. Izvairieties no tagu sadalīšanas, jo tas var izraisīt renderēšanas problēmas.
- Pārbaudiet rindkopu skaitu: Tāpat kā ar vienkāršu tekstu, pārbaudiet, vai sākotnējā satura rindkopu skaits ir pietiekams fragmentam.
- Apstrādājiet ligzdotos tagus: Atcerieties, ka rindkopās var būt citi HTML elementi, piemēram, saites vai laidumi. Nodrošiniet, lai jūsu regulārajā izteiksmē nebūtu ligzdotu tagu rindkopās.
Izvilkumu izveide, pamatojoties uz HTML rindkopu skaitu PHP, ir sarežģītāks uzdevums, salīdzinot ar vienkārša teksta apstrādi. Ir svarīgi rūpīgi lietot regulārās izteiksmes, lai saglabātu HTML struktūras integritāti. Šī metode ir īpaši piemērota tīmekļa lietojumprogrammām, kurās saturs ir jāparāda tā sākotnējā formātā. Kā vienmēr, apstipriniet oriģinālā satura garumu un, sniedzot fragmentus, ņemiet vērā lietotāja pieredzi.
Jā, WordPress ir savs funkciju un līdzekļu kopums, kas atvieglo fragmentu izveidi, kas var ievērojami vienkāršot procesu, salīdzinot ar manuālu izvilkumu apstrādi PHP. Šeit ir pārskats par galvenajām WordPress funkcijām, kas saistītas ar fragmentiem:
Izvilkuma funkcija pakalpojumā WordPress
WordPress API piedāvā stabilu sistēmu fragmentu apstrādei, padarot PHP funkciju manuālu ieviešanu nevajadzīgu tipiskākajos lietošanas gadījumos. WordPress nodrošina lietotājam draudzīgu veidu, kā pārvaldīt ziņu kopsavilkumus neatkarīgi no tā, vai tiek pielāgots garums vai mainīts lasīt vairāk tekstu vai izmantojot veidņu tagus, lai parādītu fragmentus.
the_excerpt()
Šis WordPress veidnes tags automātiski izdrukā ziņas fragmentu. To parasti izmanto motīvos, lai arhīva lapās parādītu ziņas kopsavilkumu.
- Lietošana: Vieta
the_excerpt()
sadaļā The Loop motīva failos, kur vēlaties parādīt fragmentu. - Behavior: Pēc noklusējuma tas parāda pirmos 55 ziņas vārdus. Ja ziņu redaktorā ir manuāli iestatīts fragments, tas tiks parādīts.
get_the_excerpt()
Šī funkcija izgūst fragmentu, to nerādot, sniedzot jums lielāku kontroli pār to, kā un kur to izmantot.
- Lietošana:
get_the_excerpt($post)
var izmantot, lai iegūtu konkrētas ziņas fragmentu. - Pielāgošana: Varat pēc vajadzības manipulēt ar atgriezto virkni pirms tās parādīšanas.
Izvilkuma garuma pielāgošana
WordPress ļauj mainīt noklusējuma fragmenta garumu, izmantojot excerpt_length
filtru
function custom_excerpt_length($length) {
return 20; // Return 20 words as the new excerpt length
}
add_filter('excerpt_length', 'custom_excerpt_length');
Vairāk atzīmju un vairāk teksta fragmentu pārvaldība
the_content('Read more')
Šī funkcija parāda saturu, līdz tiek parādīts tags “vairāk”. Tas ir noderīgi, lai rādītu pielāgota garuma fragmentu tieši satura redaktorā.
Pielāgot fragmentu vairāk teksta
Varat pielāgot tekstu, kas parādās fragmenta beigās (piemēram, […]
), izmantojot excerpt_more
filtru
function custom_excerpt_more($more) {
return '...'; // Replace the default [...] with ...
}
add_filter('excerpt_more', 'custom_excerpt_more');
HTML apstrāde fragmentos
WordPress fragmenti pēc noklusējuma ir vienkāršs teksts. Ja jums ir jāsaglabā HTML tagi fragmentos, jums ir jāizveido pielāgota funkcija vai jāizmanto šim nolūkam paredzēts spraudnis.
Tomēr pielāgota kodēšana vai spraudņi var būt nepieciešami papildu prasībām, piemēram, HTML tagu saglabāšanai fragmentos vai fragmentu izveidei, pamatojoties uz konkrētiem elementiem, piemēram, teikumiem vai rindkopām.