wordpress纠结笔记之评论表情

  之前在life-studio的BLOG上看到一篇文章介绍WordPress 非插件调用表情符.按照其中的提示修改后,发现我还是用不了表情符号。而且很奇怪的是,他的代码中只有如何将显示的表情符号转换为相应的文字符号,没有代码处理将文字符号转换为图片。后来问了才知道,原来wordpress又有默认的处理,将一堆的表情符号转换为相应的图片,不用我们另写代码处理。

  继续测试,发现显示出来还是文字符号。郁闷,决定自己写代码实现。

  学了几天正则表达式后,我决定在评论提交到服务器后将这些文字符号替换成相应的图片标签。wordpress的评论提交到了根目录下的wp-comments-post.php中,所以在这里面改。找到

1
$comment_content  = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;

这行代码,在其下面添加几行:

1
2
3
4
$baseurl = get_option('siteurl');
$pattern = "/:(.+):/U";
$replacement = "<img src=\"$baseurl/wp-contents/images/smilies/icon_\${1}.gif\" alt=\"\${1}\" />";
$comment_content = preg_replace($pattern , $replacement , $comment_content);

  这样处理的话,用life-studio提供的方法,需要修改下他提供的那个文件。smiley.php。(需要下载的看文章末尾的附件)。就是将其中一些wp可以识别的略写的符号都变成了全称,比如:?:换成了:question:。

  继续测试,我只写了几个表情符号的标签,发现可以显示表情图片了。后来,Sandy发现如果评论中有中文就不能显示了,表情符号直接被过滤掉了。life-studio提醒说,可能是wp-comments-post.php不是utf-8格式的,于是再次将其保存为utf-8。这次我写的评论中有中文字符也没问题了。但是Sandy说他发还是没效果。

  纠结。。。

  Sandy说貌似只有你有特权吧,其他人都不能使用表情符号。我就去查,果真如此,wordpress又默认将一些标签给屏蔽了,除管理员以外都不能使用。于是,跑到wp-includes/kses.php中,找到$allowedtags,添加img标签:(a标签默认是允许的)

1
2
3
4
5
6
'a' => array(
'href' => array(), 'title' => array()
),
'img' => array (
	'src' => array (), 'alt' => array ()
)	//如果需要更多的属性,在这里添加就可以.

  也就是说,wordpress是可以定制哪些标签被允许使用的。不过wordpress偷偷作的事情好多好多阿,让我忙乎了差不多一天。

后记:
  终于搞定了,很无聊,于是随手点击了一个链接进去,突然发现。。。在wordpress设置选项->撰写栏下面,有个格式化选项,第一个选项就是:转换如 :-):-P 的文字表情符号为图像,我没有打勾。。。囧阿。之前以为是一些插件的原因,还一个个的停掉测试了。

  这一番纠结,虽然学了些东西。不过,我更应该考虑的是Sandy的建议了,wordpress其实并不适合我,它不能让我学到一个博客的底层,太复杂太庞大,我学到的不过是wp的结构和一大堆它提供的函数库罢了,而对于我学html,php,mysql等等,并没有大的提升。其实一个小博客,一个不完善,不牛X的博客才更适合我用。

下载附件看这里:
smiley.php

7 Comments are ready?

  1. ivan said on: 2009年08月18日 18:23

    会PHP真好,其实,你可以自己写一个系统的啦! :twisted:
    好吧,有一次我差点就跟你说”后记”的那点事儿。 :wink:

    [回复]

    boluor 回复  于   

    考研阿。。。这阵子没时间鼓捣了。

    [回复]

  2. ivan said on: 2009年08月18日 18:23

    你是不会是河南的吧? :eek:

    [回复]

    boluor 回复  于   

    不仅是河南的,而且也是安阳的。林州 :wink:

    [回复]

    ivan 回复  于   

    林州话我一句都听不懂 :sad:

    [回复]

  3. 万戈 said on: 2009年08月18日 20:25

    再赞一个,研究的这么深入,厉害呀

    [回复]

  4. Sandy said on: 2009年08月19日 09:10

    沙发没有了。。板凳也没有了。。我坐地板吧。。 :mrgreen: :cry: :neutral: :arrow: :idea: :wink:
    其实我觉得如果wp让你用得很爽也就罢了。问题是用得不爽,就得改,要改就要学,学了什么?wp的一堆结构和api……这不是你的初衷。

    [回复]

    boluor 回复  于   

    确实如此。不过近期不会变了,要等估计也到了考完研了。

    不过很快会在评论那里加UBB标签,方便使用。

    [回复]

  5. ken said on: 2009年08月22日 01:57

    呵呵 有空多多交流

    [回复]

    boluor 回复  于   

    嗯。我看你BLOG上好多油创意的东西啊。

    [回复]

  6. 超人 said on: 2009年10月20日 20:38

    life stidio 确实是个高手~ 你也是高手. 来这里学习

    [回复]

  7. 非主流 said on: 2010年08月27日 12:24

    很有用的东西·zhichi le

    [回复]

Post a Comment

Your email is never published nor shared. Required fields are marked *

*

*

click to changeSecurity Code