WordPress网站的文章内容和评论内容防代码转义

使用WordPress的站长们在文章中插入html代码或者php代码的时候,最烦的就是WordPress的转义问题了,特别是没有使用代码高亮插件的站点,对于一些特殊的带有标签的字符代码,WordPress都会转义掉,那么你文章的布局样式就全乱了,那么废话不多说,直接在function主题函数中添加:

//防止代码转义
function meow_prettify_esc_html($content){
    $regex = '/(<pre\s+[^>]*?class\s*?=\s*?[",\'].*?prettyprint.*?[",\'].*?>)(.*?)(<\/pre>)/sim';
    return preg_replace_callback($regex, 'meow_prettify_esc_callback', $content);}
function meow_prettify_esc_callback($matches){
    $tag_open = $matches[1];
    $content = $matches[2];
    $tag_close = $matches[3];
    $content = esc_html($content);
    return $tag_open . $content . $tag_close;}
add_filter('the_content', 'meow_prettify_esc_html', 2);
add_filter('comment_text', 'meow_prettify_esc_html', 2);
//强制兼容
function meow_prettify_replace($text){
	$replace = array( '<pre>' => '<pre class="prettyprint" >' );
	$text = str_replace(array_keys($replace), $replace, $text);
	return $text;}
add_filter('the_content', 'meow_prettify_replace');

鳄鱼君Ba的主题自带高亮,只需要把代码块用<pre class=”prettyprint”>代码</pre>包裹即可,其它方式自行修改即可!

发表评论