Crafting Excerpts ໃນ PHP ຫຼື WordPress: Word, Sentence, and Paragraph Count Techniques
ການສ້າງບົດຄັດຫຍໍ້ໃນ PHP ເປັນວຽກງານທົ່ວໄປໃນການຄຸ້ມຄອງເນື້ອຫາແລະການພັດທະນາເວັບໄຊທ໌. excerpt ເປັນສະບັບຫຍໍ້ຂອງເນື້ອໃນທີ່ຍາວກວ່າ, ມັກຈະຖືກນໍາໃຊ້ເພື່ອສະຫນອງຕົວຢ່າງຫຼືສະຫຼຸບ. ນັກພັດທະນາ PHP ອາດຈະຕ້ອງສ້າງບົດຄັດຫຍໍ້ໂດຍອີງໃສ່ຄໍາ, ປະໂຫຍກ, ຫຼືຈໍານວນວັກ. ບົດຄວາມນີ້ຂຸດຄົ້ນວິທີການເພື່ອບັນລຸເປົ້າຫມາຍນີ້, ຄຽງຄູ່ກັບການປະຕິບັດທີ່ດີທີ່ສຸດແລະການຈັດການກໍລະນີທີ່ຈໍານວນການນັບເກີນຄວາມຍາວຂອງເນື້ອຫາ.
ຄັດມາຈາກຄໍານັບ
ການສ້າງ excerpt ດ້ວຍການນັບຄໍາສັບກ່ຽວຂ້ອງກັບການຕັດເນື້ອໃນຫຼັງຈາກຈໍານວນຄໍາທີ່ແນ່ນອນ.
function excerptByWordCount($content, $wordCount) {
$words = explode(' ', $content);
if (count($words) > $wordCount) {
$words = array_slice($words, 0, $wordCount);
$content = implode(' ', $words);
}
return $content;
}
ການນໍາໃຊ້:
// Excerpt of first 50 words
$wordCountExcerpt = excerptByWordCount($originalContent, 50);
ການປະຕິບັດທີ່ດີທີ່ສຸດ ແລະການຈັດການ overcounts:
- ກວດສອບການນັບຄໍາ: ກ່ອນທີ່ຈະຕັດ, ໃຫ້ກວດເບິ່ງວ່າຄໍານັບຂອງເນື້ອຫາຕົ້ນສະບັບເກີນຄວາມຍາວຂອງ excerpt ທີ່ຕ້ອງການ. ຖ້າບໍ່, ກັບຄືນເນື້ອຫາຕົ້ນສະບັບ.
- ຫຼີກລ້ຽງການທໍາລາຍຄໍາສັບຕ່າງໆ: ໃຫ້ແນ່ໃຈວ່າຄໍາສຸດທ້າຍໃນ excerpt ແມ່ນສົມບູນເພື່ອຮັກສາການອ່ານໄດ້.
- ເພີ່ມຮູບຮີ: ທາງເລືອກອື່ນ, ເພີ່ມຮູບໄຂ່ (
...
) ໃນຕອນທ້າຍຖ້າເນື້ອຫາຖືກຕັດອອກ.
ຫຍໍ້ມາຈາກຈຳນວນປະໂຫຍກ
ການສ້າງບົດຄັດຫຍໍ້ໂດຍການນັບປະໂຫຍກກ່ຽວຂ້ອງກັບການຮັກສາຈໍານວນປະໂຫຍກທີ່ແນ່ນອນຈາກເນື້ອຫາ.
function excerptBySentenceCount($content, $sentenceCount) {
$sentences = explode('.', $content);
if (count($sentences) > $sentenceCount) {
$sentences = array_slice($sentences, 0, $sentenceCount);
$content = implode('. ', $sentences) . '.';
}
return $content;
}
ການນໍາໃຊ້
// Excerpt of first 3 sentences
$sentenceCountExcerpt = excerptBySentenceCount($originalContent, 3);
ເພື່ອປັບປຸງ excerptBySentenceCount
ຟັງຊັນເພື່ອລວມເອົາປະໂຫຍກທີ່ມີເຄື່ອງໝາຍວັກຕອນໃດໆຢູ່ໃນຕອນທ້າຍ (ບໍ່ພຽງແຕ່ເຄື່ອງໝາຍຈຸດ), ທ່ານສາມາດແກ້ໄຂຟັງຊັນເພື່ອແຍກເນື້ອໃນໂດຍການສະແດງອອກປົກກະຕິທີ່ກົງກັບເຄື່ອງໝາຍວັກຕອນທ້າຍປະໂຫຍກທົ່ວໄປ, ເຊັ່ນ: ໄລຍະເວລາ, ເຄື່ອງໝາຍອຸທານ ຫຼືເຄື່ອງໝາຍຖາມ. ນີ້ແມ່ນວິທີທີ່ທ່ານສາມາດເຮັດໄດ້ໃນ 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;
}
ຟັງຊັນນີ້ໃຊ້ preg_split
ດ້ວຍການສະແດງອອກປົກກະຕິ (regex) /(?<=[.!?])\s+/
ເຊິ່ງແຍກຂໍ້ຄວາມຢູ່ຍະຫວ່າງ (\s+
) ທີ່ຕິດຕາມໄລຍະເວລາ, ເຄື່ອງຫມາຍ exclamation, ຫຼືເຄື່ອງຫມາຍຄໍາຖາມ ([.!?]
) The (?<=...)
ເປັນການຢືນຢັນໃນແງ່ບວກທີ່ກວດເບິ່ງການປະກົດຕົວຂອງເຄື່ອງໝາຍທ້າຍປະໂຫຍກໂດຍບໍ່ລວມເອົາມັນຢູ່ໃນການແບ່ງປັນ. ໄດ້ PREG_SPLIT_NO_EMPTY
ທຸງຮັບປະກັນວ່າພຽງແຕ່ຊິ້ນສ່ວນທີ່ບໍ່ຫວ່າງເປົ່າຖືກສົ່ງຄືນ.
ສຸດທ້າຍ, ຟັງຊັນຈະກວດເບິ່ງວ່າຕົວອັກສອນສຸດທ້າຍຂອງເນື້ອຫາຜົນໄດ້ຮັບແມ່ນເຄື່ອງໝາຍທ້າຍປະໂຫຍກຫຼືບໍ່. ຖ້າບໍ່ແມ່ນ, ມັນຈະຕໍ່ທ້າຍໄລຍະເວລາເພື່ອຮັກສາເຄື່ອງໝາຍວັກຕອນທີ່ຖືກຕ້ອງໃນຕອນທ້າຍຂອງການຍົກອອກມາ.
ການປະຕິບັດທີ່ດີທີ່ສຸດ ແລະການຈັດການ overcounts:
- ການກວດຫາປະໂຫຍກທີ່ຖືກຕ້ອງ: ໃຊ້ໄລຍະເວລາຕາມດ້ວຍຊ່ອງຫວ່າງເພື່ອແຍກປະໂຫຍກ. ນີ້ຫຼີກເວັ້ນການແບ່ງອອກເປັນໄລຍະເວລາທີ່ໃຊ້ໃນຕົວຫຍໍ້.
- ກວດສອບຈໍານວນປະໂຫຍກ: ຄ້າຍຄືກັບການນັບຄໍາ, ກວດເບິ່ງວ່າຈໍານວນປະໂຫຍກຂອງເນື້ອຫາຕົ້ນສະບັບແມ່ນພຽງພໍ.
- ຮັກສາເຄື່ອງໝາຍວັກຕອນ: ໃຫ້ແນ່ໃຈວ່າການຫຍໍ້ມາຈາກສິ້ນສຸດດ້ວຍເຄື່ອງໝາຍວັກຕອນທີ່ຖືກຕ້ອງ, ໂດຍປົກກະຕິແມ່ນໄລຍະເວລາ.
ຫຍໍ້ມາຈາກຈຳນວນວັກ
ການສ້າງບົດຄັດຫຍໍ້ໂດຍການນັບຫຍໍ້ໜ້າກ່ຽວຂ້ອງກັບການຕັດເນື້ອໃນຫຼັງຈາກຫຍໍ້ໜ້າຈຳນວນໃດນຶ່ງ.
function excerptByParagraphCount($content, $paragraphCount) {
$paragraphs = explode("\n", $content);
if (count($paragraphs) > $paragraphCount) {
$paragraphs = array_slice($paragraphs, 0, $paragraphCount);
$content = implode("\n", $paragraphs);
}
return $content;
}
ການນໍາໃຊ້:
// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByParagraphCount($originalContent, 2);
ການປະຕິບັດທີ່ດີທີ່ສຸດ ແລະການຈັດການ overcounts:
- ໃຊ້ແຖວໃໝ່ສຳລັບວັກ: ໂດຍປົກກະຕິວັກແມ່ນແຍກອອກໂດຍແຖວໃໝ່ (
\n
). ໃຫ້ແນ່ໃຈວ່າເນື້ອຫາຂອງທ່ານປະຕິບັດຕາມຮູບແບບນີ້. - ກວດນັບວັກ: ກວດສອບການນັບຫຍໍ້ໜ້າຂອງເນື້ອຫາພຽງພໍສຳລັບການຍົກອອກມາ.
- ເຄົາລົບໂຄງສ້າງເນື້ອຫາ: ຮັກສາໂຄງສ້າງຂອງວັກໃນບົດຄັດຫຍໍ້ເພື່ອຮັກສາຄວາມສົມບູນຂອງເນື້ອຫາ.
ຫຍໍ້ມາຈາກ HTML Paragraph Count
ເມື່ອຈັດການກັບເນື້ອຫາ HTML, ທ່ານຕ້ອງການສະກັດເອົາຂໍ້ຄວາມໂດຍອີງໃສ່ <p>
tags ເພື່ອຮັກສາໂຄງສ້າງແລະຮູບແບບຂອງເນື້ອຫາຕົ້ນສະບັບ.
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;
}
ການນໍາໃຊ້:
// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByHtmlParagraphCount($htmlContent, 2);
ການປະຕິບັດທີ່ດີທີ່ສຸດ ແລະການຈັດການ overcounts:
- ການສະແດງອອກປົກກະຕິສໍາລັບການຈັບຄູ່ແທັກ: ການນໍາໃຊ້
preg_match_all
ດ້ວຍການສະແດງອອກປົກກະຕິເພື່ອໃຫ້ກົງກັນ<p>
ແທັກ. ວິທີການນີ້ຮັບປະກັນວ່າໂຄງສ້າງແລະຄຸນລັກສະນະຂອງ tags ວັກຖືກຮັກສາໄວ້. - ເຄົາລົບໂຄງສ້າງ HTML: ໃຫ້ແນ່ໃຈວ່າ excerpt ຮັກສາໂຄງສ້າງ HTML. ຫຼີກເວັ້ນການທໍາລາຍ tags, ເຊິ່ງສາມາດນໍາໄປສູ່ບັນຫາການສະແດງຜົນ.
- ກວດນັບວັກ: ເຊັ່ນດຽວກັນກັບຂໍ້ຄວາມທໍາມະດາ, ກວດເບິ່ງວ່າຈໍານວນວັກຂອງເນື້ອຫາຕົ້ນສະບັບແມ່ນພຽງພໍສໍາລັບການຍົກອອກມາ.
- Handle Nested Tags: ຈື່ໄວ້ວ່າວັກສາມາດມີອົງປະກອບ HTML ອື່ນໆເຊັ່ນ: ການເຊື່ອມຕໍ່ຫຼື spans. ຮັບປະກັນບັນຊີ regex ຂອງທ່ານສໍາລັບແທັກທີ່ຕິດກັນພາຍໃນວັກ.
ການສ້າງບົດຄັດຫຍໍ້ໂດຍອີງໃສ່ການນັບວັກ HTML ໃນ PHP ແມ່ນວຽກງານທີ່ກ້າວຫນ້າກວ່າເມື່ອທຽບກັບການຈັດການຂໍ້ຄວາມທໍາມະດາ. ມັນເປັນສິ່ງຈໍາເປັນທີ່ຈະໃຊ້ການສະແດງອອກເປັນປົກກະຕິຢ່າງລະມັດລະວັງເພື່ອຮັກສາຄວາມສົມບູນຂອງໂຄງສ້າງ HTML. ວິທີການນີ້ແມ່ນມີຄວາມກ່ຽວຂ້ອງໂດຍສະເພາະສໍາລັບຄໍາຮ້ອງສະຫມັກເວັບທີ່ເນື້ອຫາຕ້ອງໄດ້ຮັບການສະແດງດ້ວຍຮູບແບບຕົ້ນສະບັບຂອງມັນ. ໃນຖານະເປັນສະເຫມີ, ກວດສອບຄວາມຍາວຂອງເນື້ອຫາຕົ້ນສະບັບແລະພິຈາລະນາປະສົບການຂອງຜູ້ໃຊ້ໃນເວລາທີ່ນໍາສະເຫນີ excerpts.
ແມ່ນແລ້ວ, WordPress ມີຊຸດຫນ້າທີ່ຂອງຕົນເອງແລະລັກສະນະທີ່ສ້າງຄວາມສະດວກໃນການສ້າງ excerpts, ເຊິ່ງສາມາດເຮັດໃຫ້ຂະບວນການງ່າຍດາຍຫຼາຍເມື່ອທຽບກັບການຈັດການ excerpts ດ້ວຍຕົນເອງໃນ PHP. ນີ້ແມ່ນພາບລວມຂອງຫນ້າທີ່ WordPress ທີ່ສໍາຄັນທີ່ກ່ຽວຂ້ອງກັບ excerpts:
ຟັງຊັນ excerpt ໃນ WordPress
WordPress API ສະເຫນີລະບົບທີ່ເຂັ້ມແຂງສໍາລັບການຈັດການ excerpts, ເຮັດໃຫ້ການປະຕິບັດຫນ້າທີ່ PHP ດ້ວຍຕົນເອງບໍ່ຈໍາເປັນສໍາລັບກໍລະນີການນໍາໃຊ້ທົ່ວໄປທີ່ສຸດ. WordPress ສະຫນອງວິທີການທີ່ເປັນມິດກັບຜູ້ໃຊ້ໃນການຄຸ້ມຄອງບົດສະຫຼຸບ, ບໍ່ວ່າຈະເປັນການປັບແຕ່ງຄວາມຍາວ, ການປ່ຽນແປງ ອ່ານຕື່ມ ຂໍ້ຄວາມ, ຫຼືການໃຊ້ແທໍກແມ່ແບບເພື່ອສະແດງການຍົກອອກມາ.
the_excerpt()
ແທັກແມ່ແບບ WordPress ນີ້ພິມຂໍ້ຄວາມ excerpt ໂດຍອັດຕະໂນມັດສໍາລັບການຕອບ. ມັນຖືກນໍາໃຊ້ທົ່ວໄປໃນຫົວຂໍ້ເພື່ອສະແດງບົດສະຫຼຸບກ່ຽວກັບຫນ້າເກັບ.
- ການນໍາໃຊ້: ສະຖານທີ່
the_excerpt()
ພາຍໃນ Loop ໃນໄຟລ໌ຫົວຂໍ້ຂອງທ່ານບ່ອນທີ່ທ່ານຕ້ອງການ excerpt ປາກົດ. - Behavior: ໂດຍຄ່າເລີ່ມຕົ້ນ, ມັນສະແດງໃຫ້ເຫັນ 55 ຄໍາທໍາອິດຂອງການຕອບ. ຖ້າມີບົດຄັດຫຍໍ້ທີ່ຕັ້ງໄວ້ດ້ວຍຕົນເອງໃນບັນນາທິການຕອບ, ມັນຈະສະແດງມັນແທນ.
get_the_excerpt()
ຟັງຊັນນີ້ດຶງເອົາຂໍ້ຄວາມ excerpt ໂດຍບໍ່ມີການສະແດງມັນ, ໃຫ້ທ່ານຄວບຄຸມຫຼາຍກ່ຽວກັບວິທີການແລະບ່ອນທີ່ຈະໃຊ້ມັນ.
- ການນໍາໃຊ້:
get_the_excerpt($post)
ສາມາດໃຊ້ເພື່ອດຶງເອົາຂໍ້ຄວາມສະເພາະຂອງໂພສໃດໜຶ່ງ. - ລູກຄ້າ: ທ່ານສາມາດຈັດການສະຕຣິງທີ່ສົ່ງຄືນໄດ້ຕາມຄວາມຕ້ອງການກ່ອນທີ່ຈະສະແດງມັນ.
ປັບແຕ່ງຄວາມຍາວຂອງບົດຄັດຫຍໍ້
WordPress ອະນຸຍາດໃຫ້ທ່ານປ່ຽນຄວາມຍາວ excerpt ໃນຕອນຕົ້ນຜ່ານທາງ excerpt_length
ຕົວກອງ
function custom_excerpt_length($length) {
return 20; // Return 20 words as the new excerpt length
}
add_filter('excerpt_length', 'custom_excerpt_length');
ການຈັດການແທັກເພີ່ມເຕີມ ແລະຕັດຂໍ້ຄວາມເພີ່ມເຕີມ
the_content('Read more')
ຟັງຊັນນີ້ສະແດງເນື້ອຫາຈົນກ່ວາມັນພົບກັບແທັກ "ຫຼາຍ". ມັນເປັນປະໂຫຍດສໍາລັບການສະແດງການຫຍໍ້ທໍ້ທີ່ມີຄວາມຍາວແບບກໍານົດເອງພາຍໃນຕົວແກ້ໄຂເນື້ອຫາ.
ປັບແຕ່ງການຍົກຂໍ້ຄວາມເພີ່ມເຕີມ
ທ່ານສາມາດປັບແຕ່ງຂໍ້ຄວາມທີ່ປາກົດຢູ່ໃນຕອນທ້າຍຂອງ excerpt (ເຊັ່ນ: […]
) ໂດຍການນໍາໃຊ້ excerpt_more
ຕົວກອງ
function custom_excerpt_more($more) {
return '...'; // Replace the default [...] with ...
}
add_filter('excerpt_more', 'custom_excerpt_more');
ການຈັດການ HTML ໃນບົດຄັດຫຍໍ້
ການຍົກອອກມາຂອງ WordPress ແມ່ນຂໍ້ຄວາມທໍາມະດາຕາມຄ່າເລີ່ມຕົ້ນ. ຖ້າທ່ານຕ້ອງການຮັກສາ tags HTML ໃນ excerpts, ທ່ານຕ້ອງສ້າງຫນ້າທີ່ກໍາຫນົດເອງຫຼືໃຊ້ plugin ທີ່ອອກແບບມາເພື່ອຈຸດປະສົງນີ້.
ແນວໃດກໍ່ຕາມ, ການເຂົ້າລະຫັດ ຫຼື plugins ແບບກຳນົດເອງອາດຈະຈຳເປັນສຳລັບຄວາມຕ້ອງການຂັ້ນສູງເຊັ່ນ: ການຮັກສາແທັກ HTML ໃນ excerpts ຫຼືການສ້າງ excerpts ໂດຍອີງໃສ່ອົງປະກອບສະເພາະເຊັ່ນ: ປະໂຫຍກ ຫຼືວັກຕ່າງໆ.