本来不想新开文章写这个“泛滥”+“牛X”的 Willin 版本 Ajax 评论提交,但是又懒得去更新老文章(有点乱),而且由于网盘的杯具,以前上传的很多都不能下载了,总是有朋友说“求下载”,加上 Willin 退出折腾 WP 很久了,不会有后续版本的更新了,所以我抽空更新了一下,算是例行为博客除草。
只简单说说,具体详细的方法自己琢磨折腾吧,网上教程大把。
1. 前提
条件一:先确定自己所用主题的评论列表调用是否使用 WordPress 官方推荐的 wp_list_comment() 函数(一般在 comments.php)
条件二:如果“条件一”满足,那么看看 wp_list_comment() 有没有加回调函数参数(callback=ooxx),如果有请检查是否跟 WP 官方的回调函数示例类似,这里看 http://codex.wordpress.org/Function_Reference/wp_list_comments
条件三:看看评论框是否使用 comment_form() 函数生成,如果不是,请确保html结构差不多,特别是输入框的ID是否为 comment
2. 下载(zwwooooo 修改过的适用于 WordPress 3.5+ 的 willin AJAX 评论提交 1.3 版本)
130306-comments-ajax-1.3-zww-wp3.5.2.zip:百毒网盘
解压后得到大家非常熟悉的2个文件:comments-ajax.js、comments-ajax.php,然后放到所使用的主题目录下
3. 必要的修改
a)看看主题 header.php、footer.php 或者 functions.php 有没有这样的函数:
wp_enqueue_script( 'comment-reply' );
如果有,删除或者注释掉。(注:好像不去鸟也可以)
b)确定所用主题的 header.php 里面 </head> 前有 <php wp_head(); ?> 和 footer.php 里面 </body> 前有 <?php wp_footer(); ?>
c)直接在 functions.php 加上如下代码来加载 jQuery 库和 comments-ajax.js 文件
if (!is_admin()) { function zfunc_scripts_method() { wp_enqueue_script('jquery'); if (is_singular()) { wp_enqueue_script('comments_ajax_js', (get_template_directory_uri()."/comments-ajax.js"), false, '1.3', true); } } add_action('wp_enqueue_scripts', 'zfunc_scripts_method'); }
(注:如果主题在其他地方加载了 jQuery 库,可以删除 wp_enqueue_script('jquery');)
ps:默认没开启评论“再编辑”功能,如有需要修改 comments-ajax.js 第 11 行
edit_mode = '0'
改为
edit_mode = '1'
完。继续等我的新鼠标……
- 本文标题:适用于 WordPress3.5+ 的 Willin 版本 AJAX 评论提交
- 本文链接:https://zww.me/wordpress3-5-willin-ajax-comment.z-turn
- 发布时间:2013年03月06日 16:34
- 版权声明:除非注明,文章均为 zwwooooo 原创,转载请以链接形式标明本文地址!
看了一遍好像还是很复杂的样子。不行啊。的折腾一会。
@migong
折腾多了就懂了
所以说。。旧的就不好用了?
小白一下
@Weitian Zhao
也不是吧,旧的1.3还是ok的,虽然一些函数更新,但是wp会兼容一段时间的
@Weitian Zhao
恩旧的还是OK的,为了以后不折腾已经升级了牧风的functions版本
对于小白,理解困难了许多
很是干脆的说,拿走。
这个和之前的版本有什么改进么?
@Forece
没啥改进,把老函数 》新函数
使用成功,谢谢
@Andrew
祝你折腾快乐
你好,我在comments-ajax.js第22行由原来的cancel_edit = '取消编辑',改为cancel_edit = '取消编辑<img src="' + pic_no + '" style="vertical-align:middle;" alt=""/>',为什么在评论页面不能显示图片而是直接代码输出?
@knalw
因为' '里面是字符串……
@zwwooooo
那如何能在取消编辑文字旁添加上一个图标?
@knalw
改下js,在js里面找到 cancel_edit 这个参数,添加一个class进去,然后用css设置这个class的背景就行了。
按照你的方法,我弄了好久,终于实现了AJAX提交,但是点击回复还是刷新页面,而且没有分页,不知道怎么搞.如果楼主有空可否帮我看看,demo就是我本次留言的Website
@雨林亭
如果“点击回复还是刷新页面”,说明你根本就没弄好,注意评论结构,很多主题都不是按文章写出的WP官方演示的评论结构。
@zwwooooo
已经折腾了好几天,实在没有办法弄好..哎~!
@雨林亭
要么请人弄,要么自己再继续折腾下,一般主题的评论结构ok的话都行的
@雨林亭
哦,对了,注意你的jQuery库不要重复加载。
我想请问您一个问题 就是在设置标题时候不是在常规这里设置了 ,如果多设置几个词的时候 会显示在首页 ,我想要的结果是 在首页只显示一个网站名 , 不显示其它的几个词 这要怎么做呀
@乐乐SEO博客
你说的是啥啊,这是主题调用问题
Warning: Undefined array key 1 in /www/wwwroot/zww/zww.me/wordpress/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
果然是wordpress大牛啊,博客真漂亮,文章写的也很清晰,不像网上copy的教程...
@joerh99
完全copy就没意思了
条件都符合了,可是用上了一提交评论就在评论框下面提示404,咋回事呢?
@常阳时光
是不是缺少图片啊?新版是对应3.5
怎么每次都看见你说等鼠标哦,你用的鸟几个。奥···
@xyixyixyi
一个。你要看我为何又在等鼠标,所以请你忽略。
留个名,顺便请问下大大我的wordpress突然不能评论了,提交留言后,然后就没然后了。肿了么?
@xilouqingzhu
这个不清楚啊,检查下自己动了啥吧
好洋气的样子,试试
wordpress 3.6RC测试正常
@流浪天下
霍霍,一般都ok啦
@zwwooooo
你好,测试一下
拿去用了~
大叔,用七牛云CDN后评论不了了,咋改呢?
@大肥羊
啥?我没用过,不知道
经测试,超赞!
虽然时间很久了,不过还是很经典的一篇技术文,赞一个
wp_enqueue_script( 'comment-reply' );
这句不屏蔽虽然也能用,但是中间会跳转到奇怪的页面,还是屏蔽比较好。
按照博主的方法改好了,谢谢!
另,请问可否将你的这篇博客转到我网站去,我是个害怕丢失学习资源的人。。。
@小幻
可以转载的,但请保留一下原文链接,谢谢。