大家都知道在wordpress的HTML编辑器里贴代码会被自动解释,而目前已知解决方法就是切换到可视化编辑器,而身为一个技术文占大半壁江山的程序媛,每次贴代码都要手动切换到可视化编辑器来转换实体符号,对我这个一心想kill可视化编辑器的人来说真是种折磨,刚好声
大家都知道在wordpress的HTML编辑器里贴代码会被自动解释,而目前已知解决方法就是切换到可视化编辑器,而身为一个技术文占大半壁江山的程序媛,每次贴代码都要手动切换到可视化编辑器来转换实体符号,对我这个一心想kill可视化编辑器的人来说真是种折磨,刚好声声昨晚提出了这个问题,所以又折腾了一上午把问题解决了,但是目前本方法仅适用于wp. 发现代码多换行就显得不那么短了.
原文地址:wordpress自动转换实体符号,无需可视化编辑器, 感谢原作者分享。
转换至实体的符号:<code>&gt;&
支持的标签:</code><code> <code></code><br />
用到的函数:<code>htmlspecialchars()</code> 此函数把一些预定义的字符转换为 HTML 实体。<br />
以下代码扔到functions.php</p>
<pre class="brush:php;toolbar:false;">
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 class="brush:php;toolbar:false;".*>)(.*)(<\/pre>)@isU', 'escapeCE', $data);
$replaceTag = preg_replace_callback('@(<code.*>)(.*)(<\/code>)@isU', 'escapeCE', $replaceTag);
return $replaceTag;
}
add_filter( 'content_save_pre', 'replaceCE', 9 ); //通过wordpress的add_filter来挂钩
add_filter( 'excerpt_save_pre', 'replaceCE', 9 ); //支持摘要格式
好了,以后可以安心贴代码了,今天没有福利,因为你们昨天不够热情,评论没上百,还比不上前一篇,我很桑心.
全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号