WordPress编辑器切换自动转义实体符号
以下代码由PHP站长网 52php.cn收集自互联网现在PHP站长网小编把它分享给大家,仅供参考 相信不少使用 wordpress 撰文的站长是直接使用 HTML 编辑器的,清枫就是如此,因为可视化格式的东西太多,有时候无法忍受,总之,各有利弊。缙哥哥在使用 HTML 编辑器编辑时遇到的最大的问题就是高亮代码里的<和>总是会因为没有转义而使得文章排版错乱,今天在网上浏览各种教程的时候看到了自动转义的方法,遂分享给大家。 转换至实体的符号:<、>、& 支持的标签:<pre><code>,用到的函数:htmlspecialchars()此函数把一些预定义的字符转换为 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’,$replaceTag); return $replaceTag; } add_filter( ‘content_save_pre’,‘replaceCE’,9 ); //通过wordpress的add_filter来挂钩 add_filter( ‘excerpt_save_pre’,9 ); //支持摘要格式 当然,我们已经将这串代码已经放到主题里了,麻麻再也不用担心我码错代码了! PS 一句:如果代码中含有<pre>或者<code>标签,还是需要手动转义,切记,切记! 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |