แก้ไขการเปิด-ปิดแท็กไม่ครบใน WordPress

โดยปกติแล้วถ้าเราเขียนบทความขึ้นมาใหม่เลย หรือไม่ได้ใช้ html mode ก็ไม่น่าจะมีปัญหานะครับ แต่ถ้าเกิดเรามีการ import จากที่อื่นหรือมีการใช้สคริป import ข้อมูลเข้าไปเองก็อาจจะมีบ้างที่จะมีการเปิด-ปิดแท็กไม่ครบ แล้วพอเอาไป validate กับ W3C ก็จะไม่ผ่านครับ ^^

เอาล่ะมาดูวิธีแก้กันดีกว่า WordPress เองก็มีฟังก์ชันที่เอาไว้ช่วยจัดการกับปัญหานี้อยู่ครับ คือ balanceTags สิ่งที่เราต้องทำเพิ่มก็แค่เอาไปใช้ครับ โดยเพิ่มฟังก์ชันข้างล่างนี้เข้าไปในไฟล์ functions.php ของธีมที่เราใช้นะครับ

if( !function_exists('fixed_unbalance_tags') ){
function fixed_unbalance_tags($content){
	if(!empty($content)){
		return balanceTags($content, true);
	}
	return '';
}
}
add_filter('the_content', 'fixed_unbalance_tags');

จากโค้ดข้างบนจะเป็นการเรียกใช้ Hooks ของ WordPress ตอนที่เรียกใช้ฟังก์ชัน the_content ครับ ก่อนที่จะคือค่า (return) เนื้อหาออกไปก็ให้เข้าฟังก์ชัน fixed_unbalance_tags ของเราเพื่อแก้ไขแท็กที่เปิดหรือปิดไม่ครบก่อนครับ