首页 > wordpress > wordpress 表情不用插件的实现方式
2009六月26

wordpress 表情不用插件的实现方式

刚才在看昨天写的那几篇关于改版inove的js。忽然间想到一件事,那就是,无论是“回复”还是“引用”,都是把别人的内容放到评论框时面,然后提交即可。

想一下,wordpress的表情插件不也是这么干的吗?不过其加了一些自己的js代码以实现其功能。例如:custom-smilies插件。

这是一款很不错的wordpress表情插件。现在我把代码改了一下,充分利用现有代码来实现此功能。代码没有减少多少,只是把之放在了一个js文件中,这样至少看源代码我不会看到怪怪的不理解的js了。呵呵。

首先,我把所有的表情图标全部取出,放入image.html中,现在内容如下:

<img class="wp-smiley-select"  alt=":!:" src="http://www.xiaoxiaozi.com/wp-includes/images/smilies/icon_exclaim.gif"/>
<img class="wp-smiley-select"  alt="8-O" src="http://www.xiaoxiaozi.com/wp-includes/images/smilies/icon_eek.gif"/>
<img class="wp-smiley-select"  alt="8)" src="http://www.xiaoxiaozi.com/wp-includes/images/smilies/icon_cool.gif"/>

在comments.php和guestcomments.php里面,把表情段代码更改一下

<?php require_once('image.html');?>

这样,表情就相当于被我全写在正文页和留言板页面,至于把表情文件单拿出来的原因,很简单,方便以后维护

在style.css里面加入如下内容,使原custom-smilies的样式依旧起作用

img.wp-smiley-select {cursor: pointer;}

最后。开始完善js。我昨天说了,我把一些document.ready的函数全放在了ready.js里面,现在我将其拿出来了。

因为忽然感觉,让首页的js代码更少点,让所有js都起到应有的作用,否则就是浪费了

于是,我把昨天说的,显示隐藏用户信息段的代码也拿出来了,放在了comment.js里面

并加入了如下内容

jQuery(document).ready(function(){
    jQuery(".wp-smiley-select").click(function(){
        //当类名为wp-smiley-select的对象被点击时,把其alt属性的值传给addSmiley函数
        addSmiley(jQuery(this).attr('alt'),'comment');
    });
})

至于addSmiley函数,我只是把“回复”功能的代码复制了一遍,去掉一些没用的就变成了这样

function addSmiley(insertStr, commentBox)
{
    //判断这个对象存在,并且它是textarea类型
    //就是下面的那个评论框
    if($("#"+commentBox) && $("#"+commentBox).attr('type') == 'textarea') {
        //借助私有变量field
        field = $("#"+commentBox);

    } else {
        //没有评论框,弹窗,告诉你丫的这个评论框居然不存在
        //敢晃点我就弹窗,哼
        alert("The comment box does not exist!");
        return false;
    }
    //注意,这里加的空格很重要,嗯。
    replay_val  = field.val().replace(/[\n]*$/g, "") + ' ' + insertStr + ' ';
    field.val(replay_val);
   
    //这里没说的了,一定要使评论框获得焦点,嗯。
    field.focus();
}

于是,现在新代码只用了这么一个js文件,实现了,标签切换,显示隐藏用户信息,回复,引用,点击表情等功能。呵呵。。

呃,刚让我把image.html换成了image.php。里面的内容直接用数组来写,发现自己刚才真的好傻啊。。唉。。

<?php
    //使用全局的表情符号数组,在wp-include/functions.php里面有定义
    global $wpsmiliestrans;
    //定义一个临时变量
    $smiles = array();
    //循环数组
    foreach($wpsmiliestrans as $alt => $src_path)
    {
        //判断其在临时数组内是否已经存在,如果已经存在,说明functions.php里面有重复定义
        //不过,别怕,这里面重复的我们只显示一条,嘿嘿
        if(!in_array($src_path,$smiles))
        {
            $smiles[] = $src_path;
            echo "\n<img class='wp-smiley-select' alt='".$alt."' src='http://www.xiaoxiaozi.com/wp-includes/images/smilies/".$src_path."' />\n";
        }
    }
?>

文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/06/26/968/
版权所有 © 转载时必须以链接形式注明作者和原始出处!

37 Responses to “wordpress 表情不用插件的实现方式”

  1. #1 xiao文 回复 | 引用 Post:2009-06-27 06:37

    :roll:

    [回复]

  2. #2 bolo 回复 | 引用 Post:2009-06-27 10:31

    本来也想像你这样把表情摆出来,后来一想,还是不要了,省点空间,放点其他东西吧

    [回复]

  3. #3 笑容@1988y 回复 | 引用 Post:2009-06-27 11:32

    :D 最近大家都很赞,写的东西都很专业,哈..

    [回复]

  4. #4 simaopig 回复 | 引用 Post:2009-06-27 11:48

    @bolo
    因为我一直喜欢加上表情,所以就想个简单的方法,还不用插件的。。呵呵。

    否则加一些没用的js,实在是不值。。

    [回复]

  5. #5 simaopig 回复 | 引用 Post:2009-06-27 11:48

    @笑容@1988y
    哈哈。都是大家给面子。呵。
    PS:最近工作找的怎么样?

    [回复]

  6. #6 LAONB 回复 | 引用 Post:2009-07-09 15:24

    哈哈,今天再次拜读,有收获了 :roll: 之前竟然还用插件 :(

    [回复]

  7. #7 fffffff 回复 | 引用 Post:2009-12-05 23:54

    :x :x dadgfad

    [回复]

  8. #8 小虫 回复 | 引用 Post:2010-06-10 13:31

    :x :| :x 学习啦

    [回复]

  9. #9 星星花园 回复 | 引用 Post:2010-06-22 02:04

    :arrow: 本来没想回复的,不过, 这大方脸还真够搞笑的 ,

    [回复]

  10. #10 simaopig 回复 | 引用 Post:2010-06-22 07:51

    @星星花园
    呵呵,方脸确实挺有意思。 :|

    [回复]

  11. #11 wei 回复 | 引用 Post:2010-07-03 07:55

    请教一个问题:因为文章中的图片设置了加边框,所以表情在文章中出现时也有边框,而在评论上却是没有的,那在文章中的表情是否也可以去掉边框,而其他图片有边框呢?

    [回复]

  12. #12 simaopig 回复 | 引用 Post:2010-07-03 11:55

    @wei
    你可以给表情的img元素,加一个class属性,然后用CSS为之去掉边框。

    不过给表情的img加上class你要看WP发评论那一块的原码。嗯。 :oops:

    [回复]

  13. #13 wei 回复 | 引用 Post:2010-07-03 12:08

    @simaopig
    不是在评论里,而是在文章里,大概是single.php

    [回复]

  14. #14 simaopig 回复 | 引用 Post:2010-07-03 17:37

    @wei
    我知道你的意思,但是在文章里,你也需要看“发评论”的代码,只要看这个就够了。

    在发评论的代码里,将更让img标签加上一个类名不就OK了嘛。去找single之类的做什么。这些都是从数据库里读出来的啊。 :razz:

    [回复]

  15. #15 qpwoeiru96 回复 | 引用 Post:2010-08-26 19:18

    :| 这个方法我用在制作我的网站上的 不过没用在WP上 哈哈 **所见略同啊
    添加Alt

    [回复]

  16. #16 simaopig 回复 | 引用 Post:2010-08-26 23:05

    @qpwoeiru96
    呵 呵。又不是WP专用,想用在哪就用在哪。呵。

    [回复]

  17. #17 雨阳美眉 回复 | 引用 Post:2010-10-16 07:58

    ;-) :cry: 学习啦

    [回复]

评论分页

发表评论

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)