西门的后花园

一个热爱网络的年轻人的博客

Comment Reply Notification插件设置邮箱及表情符号变图片

之前我还不知道,今天回复《竞猜世界杯得奖名单》获奖的朋友时,风逐蓝天反应我发过去的默认邮箱是no-reply@开头。后来我自己测试后,还真的是,因为我之前用Comment Reply Notification插件的时候,只是测试了里面内容是否正确,还真没遇见过这个问题,所以今天就去Google找方法解决。

无意中看见这样一篇文章《修正WP mail to commenter插件发件人Email地址及名称》,虽然他是介绍WP mail to commenter这款插件,但是我还是往下面看了。结果让我惊喜的是,他很详细的介绍了解决这个问题的想法,我打开Comment Reply Notification插件文件夹里面的comment-reply-notification.php文件来傻看,没想到让我看出头绪来了^_^

218句有这样一段代码:

$wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));

这里的’no-reply@’不正是上面提到的“no-reply@”么?我就直接改成我的邮箱前缀

$wp_email = 'u@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));

没想到测试就成功了,哈哈

邮箱地址

这个问题解决后,我又想到另外一个问题,就是之前在博客里面放了表情,留言通过邮件发到别人邮箱里,自动变成符号,而不是表情图片,这让我郁闷很久。直到看见阿修回复我的留言发邮件,他里面的内容就是原封不动的表情,我就请教了他,才知道万戈写过这样一篇文章《将 WordPress 中的表情符号转化为图片》。我也研究了好半天,因为我不会PHP代码,所以看着那个comment-reply-notification.php文件很头痛。又顺着万戈的文章看到《Ajax comments 評論回應郵件通知》,知道大概是“$message = (邮件内容);在后面添加一行:$message = convert_smilies($message);”,我就继续研究comment-reply-notification.php,终于被我发现了解决的方法,其实很简单,就是用convert_smilies()函数将输出带有表情代码的内容转换一下成图片,方法如下:

找到225行代码:

$mail_message = apply_filters('comment_notification_text', $mail_message, $id);

回车,在下面加上一句:

$mail_message = convert_smilies($mail_message);

搞定:

邮件表情

万戈在文章里面也提到侧边栏里面的“最新评论”,也是显示代码,而非表情。其实我博客也是一样的情况,所以就打开sidebar.php继续研究“最新评论”相关代码。

其实那段代码我真的不是看得很懂,只知道上面是mysql查询,下面是foreach循环出结果。还好我有asp.net的一点基础,大多数语言的原理都差不多,只是表达的方式不一样而已。下面是解决方法:

很多人用的“最新评论”应该是这段代码吧(除了HTML代码不一样,其他代码应该都一样)

comments
LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
$wpdb->posts.ID)
WHERE comment_approved = '1' AND comment_type = '' AND
post_password = '' AND comment_author_email != '$my_email'
ORDER BY comment_date_gmt DESC
LIMIT 10";
$comments = $wpdb->get_results($sql);
$output = $pre_HTML;
$output .= "\n";
$output .= $post_HTML;
echo $output;?>	

其实很简单,和上面一下,把输出内容用convert_smilies()函数转换一下,找到

strip_tags($comment->com_excerpt)

改成

convert_smilies(strip_tags($comment->com_excerpt))

效果如图:

最新评论表情图片

是不是很简单呢?两个问题的解决方法都是一个函数而已。为了解决以上三个问题,总共加上发这篇文章,花了我三个多小时,或许我是解决问题很慢的吧,但是我基本没问任何人方法,都是找类似文章研究然后慢慢思考出来的。所以也希望大家如果遇见困难,多转动自己的脑子,多问搜索引擎,实在解决不了,再问下别人,其实有了思路,什么都好解决的。

最后赞赏一下上面两篇帮助我的文章作者“豬頭六”和“万戈”,虽然他们写的文章都不能直接帮我解决问题,但是他们在文章里描述了实现问题的思路,这点是非常重要的,其实那两篇文章我能复制的代码,几乎没有。

评论列表

  1. 沙发支持。
    这就是折腾的乐趣

  2. 没有注意到这点哦 不知道各位童鞋收到我的邮件回复是个什么样子

  3. ➡ 你小子能折腾

    • 其实我很头痛的,那天一直对自己说“我能找到解决方法的”
      没想到就找到了,或许是这些东西都很简单吧。 :mrgreen:

  4. 昨天才折腾玩这俩个=.=

  5. 没研究过这玩意,你真能整!

  6. 这应该是作者想让收件人知道此封邮件为系统发出 无须回复的意思吧? 😆

  7. 额,多多折腾,呵呵

  8. convert_smilies这个好像第一次就是用在侧边栏的,后来你问的时候只是看着它像,没敢误导你。呵呵,解决了就好哈~~

  9. 仓老师永远漂亮仓老师永远漂亮仓老师永远漂亮仓老师永远漂亮 😕 :mrgreen:

  10. Willin Kan免费空间的博客又能打开啦,呵呵,用Willin Kan的代码实现邮件回复挺不错的

  11. 都在折腾这些啊

  12. 才发现域名是ons 很不错的域名 😛

  13. 有折腾才会有进步

  14. 哈哈 这个不错哦!!!~~学习了

  15. 打开页面 一片代码 头晕不止 看完评论 只能关闭 我是一个不懂电脑知识更没专研精神的人 ➡

  16. 不错,折腾多了就是牛人了

  17. 你越来越折腾了、、、哎 😀 😀

  18. 支持你折腾,发觉你的这个米,被俺看中拉!!

  19. 俺们都是不折腾会死星人

  20. 越折腾越快乐

    SuperRadio点歌专页开放点歌:http://www.isuperradio.com/diange

    • 前几天不知道在哪里看见说网络电台都是0收入的,真佩服你们这群网络电台爱好者,加油! 😎

  21. 我那个邮件怎么都被评定为垃圾邮件了 😥

  22. 自己摸索解决问题能够学到很多东西

  23. 😀 嘿嘿 又学到了新的东西 我终于也搞定邮件回复了

  24. 很好很复杂,有时间也改改

  25. 万戈很牛的一个人

  26. 😈 支持支持

  27. wayne

    评论表情 😕 在文字的中间,但侧边栏输出在句首,什么问题?

    • 不好意思没看明白。

      • wayne

        就像我这条回复这样,我插入的表情在“情”和“在”的中间,但在侧边栏那里就显示表情在这句话的前面,即在“评论表情”的前面,原本是表情的这个地方就变成一个空间,不知道这样说你明白不!

      • wayne

        搞掂了,原来是我的style.css没调整好 😐

  28. :mrgreen: 拿走,问个问题啊,限制字数30字符超出才加点点点要怎么修改呢!

麦子进行回复 取消回复

分类目录