为原生comment_form添加表情

若主题的 comment form 是重写的,那么添加表情的方法可以参考这个

在 WP 3中,系统提供了 comment_form() 这个函数来生成评论框以免重复开发。如果使用这个来生成评论框,那么不能直接在对应源码中添加代码的方式来添加表情。

在这种情况下,可以用下面的方法来添加表情:

首先参照以上的方法的步骤1,然后在functions.php中添加以下代码:

function add_smilies_to_form(){
    include(TEMPLATEPATH . '/smiley.php');
}
//下面之所以区别对待,是因为默认情况下用户登录与否comment_form有所不同
if (is_user_logged_in()) {//用户登录情况下,加到登录信息下面(留言框顶部)
    add_filter('comment_form_logged_in_after', 'add_smilies_to_form');
}
else { //非登录情况下,加到fields下(留言框顶部)
    add_filter( 'comment_form_after_fields', 'add_smilies_to_form');
}

如无意外,这样即可。

评论

《 “为原生comment_form添加表情” 》 有 39 条评论

    1. 流年 的头像
      流年

      @小闇, 这些不用急都是用的 ➡

  1. 小闇 的头像

    真的是SF呀 :mrgreen: 都沒機會有SF說

  2. 小闇 的头像

    地板我來了

  3. dengmin 的头像

    杯具了 还要翻墙进来

    1. 流年 的头像
      流年

      @dengmin, 发现你刚才的邮箱输错了,gmail少了个g;我直接在评论里改了;
      至于居然要翻,我表示很淡定。我应该没做过什么上达天听的事,至于同IP有没有,不知道;也有可能是他们直接看不起在外IP 😎

  4. dengmin 的头像

    确实是少了一个g 刚刚的;留言怎么看不到了?

    1. 流年 的头像
      流年

      @dengmin, 有可能是缓存的问题,可能需要刷几下,我这边正常。(我以前在别人的一个博客中也遇到这样的问题,开始去留言时,别人回复后,刷新好多次后才看到;不过后来没出现过了)

  5. Code之行人 的头像

    我不用表情很多年啦

    1. 流年 的头像
      流年

      @Code之行人, 我也不是常用,不过,有时一个表情会增色不少

  6. Ray Chow 的头像

    偶是自己重写的……
    我来这里木有翻墙

    1. 流年 的头像
      流年

      @Ray Chow, 我就懒得重写了

  7. Firm 的头像

    这个感觉不是非添加不可

    1. 流年 的头像
      流年

      @Firm, 需要才用嘛

  8. QiQiBoY 的头像

    你主题的js代码有错误哦。。firebug报错了。。 😀

    1. 流年 的头像
      流年

      @QiQiBoY, 嗯,我知道,因为对主题作了挪挪移移导致的,不过好像不影响使用,我也就一直没去理它。

  9. 第六空间 的头像

    我用得是插件,用插件的好处就是换模板不用再折腾一次.

    1. 流年 的头像
      流年

      @第六空间, 嗯,插件也有插件的好处

  10. 先看看 的头像

    还是要多点有趣的表情有意思

    1. 流年 的头像
      流年

      @先看看, 基本的就够了,太多就乱了

  11. 集趣 的头像

    其实只有2个步骤就搞定了

  12. mice 的头像

    😉 还是喜欢自己折腾到模版里 -.-

    1. 流年 的头像
      流年

      @mice, 哈哈,我是懒人

  13. Pavel 的头像

    以前我都使用插件的
    拿你这个方法去试试~~

    1. 流年 的头像
      流年

      @Pavel, 看习惯吧,插件也有插件的好处

  14. 人好哇! 的头像

    :mrgreen: 一直不想弄表情,搞的很花哨。。。 😀 咱的博客喜欢干净,清爽,于是什么都没有……什么也不会有 🙄

    1. 流年 的头像
      流年

      @人好哇!, 你这句一共用了3个表情,o(╯□╰)o

  15. Mucid 的头像

    其实我一直讨厌这个函数。。干脆删了重写。。 💡

    1. 流年 的头像
      流年

      @Mucid, 我不喜欢重复开发

  16. lee 的头像
    lee

    怎样加到评论输入框下方?!

    1. 流年 的头像
      流年

      @lee, 我到还没找到直接放到评论框(textarea)下面的,不过,倒有一个放到整个comment_form下面的(嗯,看起来不美观),代码如下:
      add_filter( ‘comment_form’, ‘add_smilies_to_form’);

  17. 梦幻弧光 的头像

    这个方法不错,总觉得这个函数自定义起来真麻烦 😯
    顺便询问下博主,如何在”发表评论”后+(ctrl+enter)字样呢,因为我的主题采用的是comment_form() 函数,不是重写的,以前使用过的主题是重新创建的还能知道如何修改,现在雾水了
    而且Ajax回复效果也一直无法使用成功 🙁
    抱歉一下子问了这么多

    1. 流年 的头像
      流年

      因为 Ctrl + Enter 快捷回复功能需要JavaScript 的支持,所以提交按钮上的字样我是使用 JS 动态添加的,不是直接写在 PHP 源码中。
      我看了一下,你已经加载了jQuery,所以,可直接将以下代码写在你的JS文件中

      jQuery(document).ready(function() {('#submit').val($('#submit').val() + "(Ctrl + Enter)");
      });

      至于Ajax回复,我使用的是Willin的代码,基本是可以直接用的,不知道你是如何实现的

  18. Cyan 的头像

    非常感谢~我找了好久终于成功~ 😳

  19. […] 而后终于找到《为原生comment_form添加表情》,顺利解决问题。 […]

  20. […] 而后终于找到《为原生comment_form添加表情》,顺利解决问题。 […]

  21. blueandhack 的头像

    多说可以和wordpress原来的评论合并?