ฟังก์ชันตัดคำ ไม่ให้มีอักขระเพี้ยนๆต่อท้าย

เวิดเพลสนับเป็น CMS ที่มีคนใช้งานมากที่สุดในตอนนี้เลยก็ว่าได้ วันนี้บล็อกเล็กๆของเราก็เลยจะมาพูดถึงการปรับแต่งเวิดเพลสกันซักหน่อย โดยปกติแล้ว เมื่อต้องการตัดคำให้แสดงผลบางส่วน เวลาที่เราเขียนบทความในเวิดเพลสจะต้องแทรกแท็ก <!-more–> เพื่อบอกให้เวิดเพลสรู้ว่าจะตัดคำเพื่อไปแสดงผลตรงนี้นะ แล้วเมื่อต้องการใช้การตัดคำนี้ ก็เพียงเรียกใช้ฟังก์ชัน get_the_excerpt() มันก็จะแสดงคำที่ตัดตามที่เราแทรกโค้ดตอนเขียนบทความ นี่ก็เป็นวิธีที่ค่อนข้างจะยุ่งยาก

อีกวิธีหนึ่งคือใช้ PHP ตัด โดยใช้ฟังก์ชัน substr() ซึ่งสามารถ ตัดคำได้โดยอัติโนมัติ และตัดได้เท่าๆกัน เพราะมีการใส่จำนวณคำที่ต้องการตัดเข้าไป และเป็นค่าคงที่

แต่ปัญหาที่ตามมาก็คือ ในบางครั้งการใช้งานฟังก์ชั้นนี้ก็จะพบว่า มีตัวอักษรแปลกๆ อักขระไม่พึงประสงค์โผล๋เข้ามาด้วย วันนี้บล็อกเล้กๆก็เลยจะมาแนะนำการเขียนฟังก์ชัน ขึ้นมาใช้งาน โดยที่ เมื่อเราตัดคำแล้ว จะไม่มีตัวอักษรแปลกๆ โผล่มาให้กวนใจอีกต่อไป และยังตัดคำได้อย่างแม่นยำ ถูกต้องตามหลักภาษาอีกซะด้วย

ชั้นตอนก็คือ เราสามารถสร้างฟังก์ชันขึ้นมาเองได้ในไฟล์ Theme Functtions หรือ function.php โดยแทรกโคดฟังก์ชันเข้าไป

function substr_utf8( $str, $start_p , $len_p) {
return preg_replace( '#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$start_p.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len_p.'}).*#s',
'$1' , $str );
}

จากนั้นเวลาที่เราต้องการเรียกใช้ฟังก์ชันตรงไหน ภายในธีมนี้ก็สามารถเรียกใช้งานฟังก์ชันได้ทุกที่ ตัวอย่างการเรียกใช้ฟังก์ชัน

<?php echo substr_utf8(get_the_excerpt(),0,200); ?>...

ผลลัพธ์ที่ได้

ฟังก์ชันตัดคำ
ฟังก์ชันตัดคำ

Leave a Reply

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

This site uses Akismet to reduce spam. Learn how your comment data is processed.