将 WordPress 中的表情符号转化为图片

长久以来一直困扰着我一个问题,别人的 WordPress 侧边栏中的最新评论都是可以显示表情图片的,而唯独我的最新留言中只是显示图片的代码,会让人感觉很别扭。但幸好不影响到整体美观,而且我又不愿用插件解决这个问题,所以搁置着成了我的心病。不过我一直没有放弃寻求解决的方案,今天在 zwwooooo 的提点下实现了在 WordPress 的侧边栏最新评论中显示表情图片的效果。

问题的关键就在于 convert_smilies() 函数,以下转自 WordPress 啦!关于 convert_smilies() 函数的介绍

  • 说明:将文本中的表情符号转换为表情图像。只在选项 'use_smilies' 为 true,且函数中的全局变量不为空时转换表情符号。
  • 用法:<?php convert_smilies( $text ) ?>
  • 参数:$text(字符串)(必需)需要转换表情符号的内容,默认值:None。返回的值,(字符串)将表情转换为图像之后的文本。

说到这里,稍微有些 PHP 基础的朋友应该已经看明白了,只要在最新评论的输出前用 convert_smilies() 函数将带有表情符号的内容转化为图片就可以了,具体的就根据各位不同的函数操作了。

解决了侧边栏最新留言的表情图片问题,我又突然联想到了评论回复的邮件通知中的表情问题。具我所知,在所有的邮件通知插件中只有 mail to commenter 插件是可以输出评论中的表情图片的,其他插件包括最著名的 wp thread comment,都只能输出表情的代码符号。我曾经为了解决这个问题而特别研究 mail to commenter 插件,未果,今天终于真相大白,原来只需区区一行 convert_smilies() 函数就搞定了。

关于评论回复的邮件通知,我现在并没有用任何插件,而是用 Willin 大师的《Ajax comments 評論回應郵件通知》的方法实现的,不过在他的方法中也是不能输出表情图片的,这是个小小的遗憾。我将 convert_smilies() 函数添加了进去,成功实现了带表情图片的邮件通知,欢迎同学们测试。

以下是对 Willin 大师的 comments-ajax.php 文件的小修改,同样用此方法的童鞋可以照搬:找到变量 $message = (邮件内容);在后面添加一行:$message = convert_smilies($message);

这样就 OK 了,就是如此简单,用 wp thread comment 插件的朋友也可以按照这个方法修改试试,这里不再熬述。