wordpress pre标签中内容显示转义

想在wordpress 文章中插入代码,小段代码放到code里,大段代码放pre里,但是有时候想插入html代码,发现被浏览器解析了,所以我们要在输出前对代码进行转义,这样pre输出就正常了。

利用WordPress的add_filter钩子实现对文章、评论中的代码经行转义。

食用方法一

将以下code 贴到WordPress主题的funxtions.php中即可。


/** 
* wordpress pre html special chars 
* @author yefengs 
* @link http://os.yefengs.com/wordpress-pre-tag-content-displayed-in-an-escape.html 
* @var 1.0.0 
* @package WordPress pre  
* @subpackage yefengs 
* @since 2014-12-22 
* @return string */ 
add_filter('the_content', 'htmlspecialchars_pre', 12); 
add_filter('get_comment_text', 'htmlspecialchars_pre'); 
function htmlspecialchars_pre ($content) {  
    
    return preg_replace_callback ("/<pre>(.*?)<\/pre>/si", create_function('$matches','return "<"."pre".">" . htmls_pecial_chars($matches[1]) ."";'),$content); 

}
function htmls_pecial_chars($content=''){
    //htmlspecialchars_decode() 
    $content = str_replace("<","<",$content);
    $content = str_replace(">",">",$content);
    $content = str_replace("&","&",$content);
    $content = str_replace('"',""",$content);
    $content = str_replace("'","'",$content);
    $content = str_replace(" "," ",$content);
    return $content;
}

食用方法二

将以下code 贴到WordPress主题的funxtions.php中即可。


/**
* wordpress pre html special chars
* @author yefengs
* @link http://os.yefengs.com/
* @var 1.0.0
* @package WordPress pre 
* @subpackage yefengs
* @since 2014-12-22
* @return string
*/
add_filter('the_content', 'htmlspecialchars_pre', 12);
add_filter('get_comment_text', 'htmlspecialchars_pre');
function htmlspecialchars_pre ($content) { 
    return preg_replace_callback ("/pre>(.*?)<\/pre>/si", create_function('$matches','return "<p"."re>" . htmlspecialchars($matches[1]) ."<\/pr"."e>";'),$content);
}

0 thoughts on “wordpress pre标签中内容显示转义
添加一条新回复 回到顶部

亲爱的,主人已经关闭了这篇文章的评论 。