wordpress自动转换实体符号,无需可视化编辑器

本文介绍如何在不使用可视化编辑器的情况下,自动将precode标签内的<>等html实体符号转为&lt;&gt; ,使html标签不被wordpress自动解释. 作者:小蝴蝶

大家都知道在wordpress的HTML编辑器里贴代码会被自动解释,而目前已知解决方法就是切换到可视化编辑器,而身为一个技术文占大半壁江山的程序媛,每次贴代码都要手动切换到可视化编辑器来转换实体符号,对我这个一心想kill可视化编辑器的人来说真是种折磨,刚好声声昨晚提出了这个问题,所以又折腾了一上午把问题解决了,但是目前本方法仅适用于wp.
转换至实体的符号:<>&
支持的标签:<pre> <code>
用到的函数:htmlspecialchars() 此函数把一些预定义的字符转换为 HTML 实体。
以下代码扔到functions.php

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( //定义需要转换的标签 
		'&' => '&amp;',
		'<' => '&lt;',
		'>' => '&gt;'
		);
		$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.*>)(.*)(</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 ); //支持摘要格式 

发现代码多换行就显得不那么短了.
好了,以后可以安心贴代码了,今天没有福利,因为你们昨天不够热情,评论没上百,还比不上前一篇,我很桑心.

LIKE OR SHARE IT:

admin发表于Code目录下,标签为,转载请保留链接

TOP DOWN
发表评论

您必须 [ 登录 ] 才能发表留言!

  1. 沙 发 xsinger

    沙发了,不好意思了,各位看官!

    三月 19, 2013 18:16:02
  2. 板 凳 xsinger

    不要桑心,这篇可以上百的,请相信我们!

    三月 19, 2013 18:17:14
  3. 地 板 跑调的包子

    这个实用! 大爹折腾WP也不少时间了…向你学习。

    三月 19, 2013 20:27:10
  4. 地 毯 补肾壮阳的食物

    wordpress用的很好

    三月 19, 2013 21:18:13
  5. 地 面 不亦乐乎

    丶壮阳补肾的都通过了

    三月 19, 2013 21:42:11
  6. 地 下 郑永

    先占个位。。哈哈。我都是代码直接复制,然后前台转为英文符号。

    三月 19, 2013 22:12:44
  7. 7 楼 梦月酱

    来看小蝴蝶折腾

    三月 19, 2013 22:28:36
  8. 8 楼 ChoJemmy

    小蝴蝶,我把你照片保存下载放在桌面了,今天被女朋友看到追问我是谁。我只好说是网友,它还不信 :ku: :ku:

    不过,福利这种东西还是得要。楼下的各位加油啊。不然我就再也不相信××了

    三月 20, 2013 00:04:21
  9. 9 楼 axiu

    从来不用可视化编辑器的路过……

    三月 20, 2013 09:16:57
  10. 10 楼 Android

    腾讯订阅未收到 截止现在 :koubi:

    三月 20, 2013 09:24:14
  11. 11 楼 简搜博客

    亲爱滴 不要桑心 额来凑数咧 :koubixiu:

    三月 20, 2013 10:00:41
  12. 12 楼 francis

    第一次看见程序媛,留个言。

    三月 20, 2013 22:47:08
  13. 13 楼 张书杨

    这个倒是接地气的实用功能,深夜顶起

    三月 21, 2013 05:07:58
  14. 14 楼 wmtimes

    技术女还是技术男啊。技术文章居多。

    三月 21, 2013 10:55:23
  15. 15 楼 figo

    mark一下,昨刚试了一个代码高亮插件,后来觉得还是算了…… 对于咱来说,只用可是编辑器~~ :koubixiu:

    三月 23, 2013 21:11:58
  16. 16 楼 方露宇

    - -这玩意。。。好吧我准备翻译你的文章到英文博客上。。看看能不能收录。。

    三月 23, 2013 22:24:01
  17. 17 楼 yxiao

    我是每次都要切换一次才把这些符号换为html实体。不过有些时候需要加上一些html代码。所以这方法不太好

    四月 19, 2013 21:02:48
    • 小蝴蝶

      @yxiao 确实,只是提供一个方法了,如果不加html代码的话还是比较好用的

      1701室 四月 20, 2013 14:17:05
  18. 18 楼 kn007

    不怕麻烦的飘过

    七月 21, 2013 20:00:37
  19. 19 楼 不亦乐乎

    貌似会自动过滤反斜杠啊!!!

    十二月 24, 2013 14:52:57
  20. 20 楼 柳飘清枫

    太有效了,帮了大忙了,注释很详细,对新手来说很好理解,谢谢

    一月 7, 2014 23:22:47