WP-Plugin SyntaxHighlighter Evolved และ htmlspecialchars

สืบเนื่องจากผมไปเจอปลั๊กอินเวิร์ดเพลสตัวนึงครับ มันมีชื่อว่า SyntaxHighlighter Evolved เลยทำให้ผมอยากกลับมาเขียนบล๊อคนี้ต่อ หลังจากทิ้งไปนานมากๆ

ซึ่งมันรองรับภาษามากมายครับ สามารถดูทั้งหมดได้จากที่นี่เลย
http://alexgorbatchev.com/wiki/SyntaxHighlighter:Brushes

แต่ประเด็นจริงๆ ที่ทำให้ผมเขียน post เป็นเพราะว่า ผมมีปัญหากับ htmlspecialchars ครับ เหมือนว่ามันทำซับซ้อนกับ Wordress

ผมพยายามหาทางตั้งค่าใน Settings ของทั้ง 2 ตัว (WordPress และ syntaxhighlighter) แต่ก็ไม่เจอที่จะให้ตั้งค่าเรื่อง encode เลย สุดท้ายผมเลยต้องเข้าไปแก้ในไฟล์ syntaxhighlighter.php ครับ

File: ./wp-content/plugins/syntaxhighlighter/syntaxhighlighter.php

// The callback function for SyntaxHighlighter::encode_shortcode_contents()
function encode_shortcode_contents_callback( $atts, $code = '', $tag = false ) {
    return '[' . $tag . $this->atts2string( $atts ) . ']' . htmlspecialchars( $code ) . "[/$tag]";
}

ผมเข้าไปลบคำสั่ง htmlspecialchars นี้ออกไป

// The callback function for SyntaxHighlighter::encode_shortcode_contents()
function encode_shortcode_contents_callback( $atts, $code = '', $tag = false ) {
    return '[' . $tag . $this->atts2string( $atts ) . ']' . ( $code ) . "[/$tag]";
}

หากใครมีวิธีแก้ที่ถูกต้องโปรดชี้แนะด้วยนะครับ แก้โค๊ดไปแบบนี้ กลัวไปกระทบส่วนอื่นจัง 🙁

Leave a Reply

Your email address will not be published. Required fields are marked *

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