WP3.0新增的comment_form()函數实现Ctrl+Enter提交评论

» 2010-09-28 94条评论

》》最近在折腾 zBench 主题的更新,因为WordPress官方要求使用 WordPress 3.0 新增的函数 comment_form() 来生成评论表单,这样虽然很方便,减少了主题开发者的代码量,但问题接着来了,因为这样的话原来主题自带的 Ctrl + Enter 提交评论功能就没法用了。

有问题是放狗搜,但 WordPress 函数问题最好直接去 codex.wordpress.org

comment_form() 函数说明地址(英文):传送门

》》稍微研究参数后解决,不过遇到一个问题,先看看原来的 Ctrl + Enter 提交评论代码(注意红色部分):

<textarea name="comment" id="comment" cols="100%" rows="6" tabindex="4" onkeydown="if(event.ctrlKey&amp;&amp;event.keyCode==13){document.getElementById('submit').click();return false};"></textarea>

其中的&amp;&amp;是&&运算符,在设置 comment_form() 函数的参数时这个运算符出错,怎么折腾也不行,后来脑筋一转,if语句有2个条件,拆分为2个if不就行了,哈,问题解决。

下面是解决代码:

<?php comment_form('comment_field=<p class="comment-form-comment"><textarea aria-required="true" rows="8" cols="45" name="comment" id="comment" onkeydown="if(event.ctrlKey){if(event.keyCode==13){document.getElementById(\'submit\').click();return false}};"></textarea></p>'); ?>

这个问题解决鸟,还遇到一些问题,解决后再下回分解!

zww
or
oooo

“WP3.0新增的comment_form()函數实现Ctrl+Enter提交评论”有94条评论

  1. 突然发现域名好短啊 hoho

    1. zwwooooo says:

      @百度黑板报
      呵呵,不然怎么去忍受.me的续费呢?

  2. Kars says:

    大叔 用 外部JS 加载吧、、

    document.getElementById("comment").onkeydown=function(b){var a=null;a=window.event?window.event:b;a!=null&&a.ctrlKey&&a.keyCode==13&&document.getElementById("submit").click()};

    1. zwwooooo says:

      @Kars
      以后整合进表情支持的那个php文件里面吧,那里面有js代码。不过我这也算是提供另一种方法吧

    2. Kars says:

      @zwwooooo
      我对 那些 嵌在 HTML 中的 JS 不是很了解、、 :shock:

  3. 不都升级到3.01了么。不过我还是在用2.92,我这个淫就是念旧 :mrgreen:

    1. zwwooooo says:

      @第六空间
      3.0新加的,3.0.x都是些小升级

  4. Alan says:

    外部调用
    if (!document.getElementById) return false;
    if (!document.getElementById("comment") || !document.getElementById("submit")) return false;
    document.getElementById("comment").onkeydown = function (moz_ev) {
    var ev = null;
    if (window.event){
    ev = window.event;
    }
    else{
    ev = moz_ev;
    }
    if (ev != null && ev.ctrlKey && ev.keyCode == 13) {
    document.getElementById("submit").click();
    }
    }

    1. mice says:

      @Alan
      :shock: 如果写这么长 还不如直接另外写js里好了..

    2. zwwooooo says:

      @Alan
      呵呵,尽量用简单方法吧

    3. Alan says:

      @mice
      这个是直接写js里啊,结构和行为分离嘛,你要直接写submit按钮后面当然不用这么多,少了前面几行判断。

    4. Alan says:

      @zwwooooo
      其实有个jQuery的,可以提交,但是直接无视ajax-comment,我没搞懂。
      $(function() {
      $('#comment').keydown(event) {
      if(event.ctrlKey && event.keycode == 13) {
      $('#submit').click();
      }
      }
      }

    5. Alan says:

      @Alan
      keycode打错了,应该是keyCode

    6. zwwooooo says:

      @Alan
      其实原理差不多,呵呵

    7. 砼砼 says:

      @Alan
      把click改成submit

  5. @ZWWoOoOo 我想问一下我现在的博客主题,我想把前三篇文章的摘要内容都显示出来要怎么处理?(现在只显示第一篇的),谢谢!

    1. zwwooooo says:

      @型男索女
      要改jq代码,打开 zww-line.js 找到 12 行的
      $(".expansion-1:first").click();
      改为
      $(".expansion-1:lt(3)").click();

  6. 大连SEO says:

    textarea我这里看起来怎么那么小,高度只有一行的样子,是我的浏览器的原因吗?还是就是设置的这样。

    1. zwwooooo says:

      @大连SEO
      就一行代码

  7. C瓜哥 says:

    受教,有空拿回去用用

  8. 之前纠结这个问题,之后用了一段JS……回头试试这个方法

    1. zwwooooo says:

      @星野苍真
      试试吧,好用就行了

  9. oalleno says:

    还没能力用上ctrl+enter。我那主题怎么用上ajax评论效果还是没则,有n多这样的插件,样式不太喜欢,就一直搁浅了。

    1. zwwooooo says:

      @oalleno
      用willin的ajax评论提交代码吧

  10. Bee君 says:

    现在这个主题越来越精致啦~

    1. zwwooooo says:

      @Bee君
      哈,慢慢玩

  11. yywr says:

    原来如此~~ :grin:
    不懂PHP搞得头大啊

    1. zwwooooo says:

      @yywr
      主要是要了解这个函数

  12. JStyle says:

    <?php comment_form('comment_field=这里有个小错误,field=>'<p
    哈哈,还是相当谢谢你这文章的指点,终于搞掂表情问题。发现,WP好多牛人。

    1. zwwooooo says:

      @JStyle
      哪里有错?

  13. JStyle says:

    文章里是:_field='field=>'<p..

    另外,想请教下,你的评议用的是插件吗?哪个插件?头像是怎么调用的?本地的还是G?

    1. zwwooooo says:

      @JStyle
      头像缓存了,全部代码。

  14. 无为 says:

    请问下

    if ( $comment_author != "" ) : printf('', $comment_author);

    怎么加入到函数里去。

    1. zwwooooo says:

      @无为
      这么简单的判断加到函数干嘛?这不是蛋疼么?

    2. 无为 says:

      @zwwooooo
      主要是想将判断过后的代码加入到表单,不过解决了。将判断放在外面以变量的形式放到函数内。是很简单,只是我对PHP一窍不通(通了九窍?汗!)的人来说就是天书了。

    3. zwwooooo says:

      @无为
      呵呵,慢慢折腾

  15. 咚门 says:

    刚想给主题加个快捷回复功能。百度又到你这了。

    1. zwwooooo says:

      @咚门
      这……那谢谢百度……囧

  16. lss53 says:

    我受此文的启发,终于为评论框添加简单文字编辑器,效果与您的相仿。再者感谢您提醒我不做伸手党,再次感谢!

    1. zwwooooo says:

      @lss53
      自己动手丰衣足食很爽的。

  17. 正在找這個函數 研究學習中
    謝謝分享

  18. Pasi says:

    代码可以使用 非常感谢 :mrgreen: :mrgreen:

发表评论

昵称 *

网址

B em del U Link Code Quote