HTML秀米编辑上面临的的主要原因是背光灯代码里的东西<和>还是会就是因为没有空字符串最终导致内容编辑缭乱,WordPress编辑器如何找到自动转义实体符号?
转换至节点的符号:<、>、&,支持的代名词:<pre><code>,所涉及到的表达式:htmlspecialchars()此函数把他们输入参数的decimal为HTML实体。将以下代码拉到functions.php,让他把6、7、8正的括号去掉。
function escapeCE($arr) {
if (version_compare(PHP_VERSION, ‘5.2.3’) >= 0) { //所需PHP版本
$output = htmlspecialchars($arr[2], ENT_NOQUOTES, get_bloginfo(‘charset’), false);
} else {
$needTo = array( //定义需要转换的标签
‘&’ => ‘&’,
‘<‘ => ‘<‘,
‘>’ => ‘>’
);
$data = htmlspecialchars_decode($arr[2]);
$output = strtr($data, $needTo);
}
if (! empty($output)) { //如果需要实体符号则进行替换
return $arr[1] . $output . $arr[3];
} else {
return $arr[1] . $arr[2] . $arr[3];
}
}
function replaceCE($data) { //匹配需要转换实体的标签
$replaceTag = preg_replace_callback(‘@(<pre.*>)(.*)(
)@isU’, ‘escapeCE’, $data);
$replaceTag = preg_replace_callback(‘@(<code.*>)(.*)()@isU’, ‘escapeCE’, $replaceTag);
return $replaceTag;
}
add_filter( ‘content_save_pre’, ‘replaceCE’, 9 ); //通过wordpresg的add_filter来挂钩
add_filter( ‘excerpt_save_pre’, ‘replaceCE’, 9 ); //支持论文的格式
当然,我们确实将它们串代码已经放到主题里来,如果代码里有<pre>或者<code>标签,肯定是要手动转义。