今天又在 Google Reader 上掏到了好东东,看到盒子写了一篇《17行代码为 wordpress 添加评论表情列表》,我马上联想到现在正在用的 Willin 大师的非插件调用 WordPress 表情符的方法,两者实现的效果都是一样的,就是抛弃插件,用代码来实现 WordPress 自带的表情。我比较了一下,盒子的方法居然更精简,效率更高,马上应用到了自己的主题上,并转载方法如下:
将以下代码复制到 comments.php 中合适的位置:
<!--smilies-->
<?php
function wp_smilies() {
global $wpsmiliestrans;
if ( !get_option('use_smilies') or (empty($wpsmiliestrans))) return;
$smilies = array_unique($wpsmiliestrans);
$link='';
foreach ($smilies as $key => $smile) {
$file = get_bloginfo('wpurl').'/wp-includes/images/smilies/'.$smile;
$value = " ".$key." ";
$img = "<img src=\"{$file}\" alt=\"{$smile}\" />";
$imglink = htmlspecialchars($img);
$link .= "<a href=\"#commentform\" title=\"{$smile}\" onclick=\"document.getElementById('comment').value += '{$value}'\">{$img}</a> ";
}
echo '<div class="wp_smilies">'.$link.'</div>';
}
?>
<?php wp_smilies();?>
<!--smilies-->
<?php
function wp_smilies() {
global $wpsmiliestrans;
if ( !get_option('use_smilies') or (empty($wpsmiliestrans))) return;
$smilies = array_unique($wpsmiliestrans);
$link='';
foreach ($smilies as $key => $smile) {
$file = get_bloginfo('wpurl').'/wp-includes/images/smilies/'.$smile;
$value = " ".$key." ";
$img = "<img src=\"{$file}\" alt=\"{$smile}\" />";
$imglink = htmlspecialchars($img);
$link .= "<a href=\"#commentform\" title=\"{$smile}\" onclick=\"document.getElementById('comment').value += '{$value}'\">{$img}</a> ";
}
echo '<div class="wp_smilies">'.$link.'</div>';
}
?>
<?php wp_smilies();?>
<!--smilies-->
当然,为了便于管理,你也可以把函数部分放在 functions.php 里,然后在 comments.php 里用<?php wp_smilies(); ?> 来调用。
这里,还要感谢 ThinkAgain 大虾,以上代码提取自他的 wp-smilies 插件。
-
Wordpress 非插件调用表情符2009年07月4日 -
万戈牌 Fuck IE6 非插件版2011年05月13日 -
非插件同步 WordPress 日志到嘀咕2011年03月31日 -
阻止 Wordpress 对站内文章的 pingback2011年03月28日
Pingback: wordpress笔记之评论表情 | 闻心阁
Pingback: wordpress笔记之评论表情 | i 水手
我就路过,,
Pingback: 装好WP后做的一些事 | LiChao's blog
这种方法有弊端,点击了标签以后鼠标的光标不是在文本输入框之内闪烁的,还要点击一下文本框以后才可以输入内容。
恩,是的,算是一个小bug
可以试试这个方法,是比较好的:http://wange.im/expression-without-plugins-in-wordpress.html
thinkagain不是制作hot-friend的大虾吗?
好像是的耶,没有接触过此人
折腾未果啊,
谢谢分享。拿到,走人~
$wpsmiliestrans 哪里来的??
。。。被小邪这么一问,MS这段代码还可以精简~
万戈都是修改functions.php 文件实现啊,很强大。
呵呵,只是些无聊折腾的
WP自带的评论表情解析数组,这个不能精简了吧 = =
这样做的话得能体现出它的价值啊,从执行效率上讲,插件和这段代码应该相差无几,所以单独拿出来集成在主题里似乎也没有太大的必要——纯属个人意见。
没错,只是我一些小折腾罢了,呵呵
老万你也弄个收藏啊,看到你这文想收藏备用啊
HOHO,好呀,我去放一个试试
记录 正好我要换WP了
依稀记得 WP貌似是不带表情 呵呵~
WP是自带22个默认表情的,只是比较难看,需要自己更换
其实我最怕麻烦了
HOHO,那插件比较适合你,我就爱折腾
如果是这样的话,我也得加上咯!
回头立即添加,太严肃了也不好嘛~~
额,我不是计算机专业的,看不懂代码!
HOHO,我也不是计算机专业的
我还是继续用willin
我用的也是willin的,嘿嘿
我还以为同一个东西要说两次呢。。。
这个类似原先看到过,谢谢分享。
效果上一样,但效率上还是以前的好
那我还是用以前的吧~
这个有点牛逼的……
你是211.166.9.20吗?
恩,是的
就是不出错啊
会不会是你服务器的问题?
小张说我跟你一个主机 不过貌似你换到美国去了吧 不过确实从来没在你这404过
我的去美国了?
太好了
我记得你前几天不是说换美国主机了吗
我没有说过啊,你是第一个告诉我的
那可能是我理解错误了
查了一下IP,还是在国内
瑞特 一天樱桃园人与人一头热红黄飞鸿好
5677韩国发行风格
123456
我在自己那留言老是404,不确定是不是自己网络原因。所以,来您这实验下,有劳等下删掉这些留言吧,哈哈!
开始灌水啦!
我的用这种直接调用的有时总是不转换,依然是代码
唉~~空间还挂着呢~~不折腾了~
你的网站一整天打不开了。。。
万戈依旧很霸道。非插件能不能帮我把博客评论ajax实现~还有评论信息/最新日志。。插件无法实现
非插件实现ajax评论的话要看你的主题是否符合2.7+主题函数的标准,你可以参考这篇文章:http://willin.heliohost.org/?p=1279
评论信息是用Comment Info Detector插件
最新日志的函数可以看这篇文章:http://zww.me/archives/24671
效果看起来不错
感谢测试哈
這我想過, 是用動態替代靜態, 會減緩了速度, 而且有個 bug, 只會在文字 '尾巴' 添加, 把鼠標放中間插入, 卻都是加在後頭... 改的話又回到 '迷你版' 了.
恩,是的,所以我今天一早又改回了 Willin 大师你的方法
更正一下, 是我 '抄襲' 的方法, 呵呵, 不是我寫的~
呵呵,不管怎么说,我是从你那里学来的
呵呵,ThinkAgain的js的确只能添加到后面的
嘿嘿,谢谢,感觉不错吧
我试了一下,很爽!
爽完我就撤下了 ..
。。。裸哥是不是不打算要表情?
有这种想法,但一直纠结在‘加表情提高评论者体验’还是‘保持风格’ 当中 ..
不加也没关系,如果我想打表情的话,直接打代码符号就可以了
如果在我没下决心上表情之前,你打符号上表情也没用,通通删掉..
哎呀,你的表情不好使了!
你又高科技了.
呵呵,这算啥高科技呀,都是从别人那里批发而来的
我这里只提倡免插件的方法哟
我知道啊,所以才说你就是“万能插件”啦。找你就不用装插件了。
我觉得winlin的方法较好,首先这两个方法生成的html文档代码量大小差不多,并不会说哪个方法会减少浏览器解析时的工作量,但是盒子的方法是要用PHP循环输出为html,相较来说要耗费少量的服务器资源,而winlin的方法直接就是以浏览器可正常解析的html代码。
还有,盒子的方法当点击表情后不会自动聚焦到文本框,必须手动再点击一下文本框方可继续输入文字,而winlin的方法则再每次点击表情后自动聚焦到文本框。
还是你分析的有道理,我又换回willin大师的方法了
纯支持……
感谢修修帮忙测试
我发现我近来来得挺早的。
也准备转载你这篇东西。
我想启用这个
到头来我转载你的,你转载盒子的,盒子……
思想汇报写得想死。回来一看果然又更新了
向勤劳的万戈学长致敬,并且对表情排列变更表示情绪不稳影响很大
我是来纯盖楼的
冰古大虾大驾光临,鸡冻鸡冻啊
先收藏起来,以后用到直接贴,哈哈
没你通知,板凳都抢不着了
沙发?
先把文章看完了居然还有还发,真是奇迹啊。春歌+犀利哥显灵了。
你来的还真早啊,HOHO~
顺便测试下表情