2010年09月28日 94条评论

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

》》最近在折腾 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. Jayuh says:

    期待下回分解!

    1. zwwooooo says:

      @Jayuh
      你又沙发鸟!

  2. 小闇 says:

    手機黨遲來了

  3. 球犯 says:

    手机党前来支持!放狗搜 这是你的专用名词不。。好冷啊

    1. zwwooooo says:

      @球犯
      不是,很多用,但不是指搜狗,是google的读音“狗狗”

  4. 阿修 says:

    官方的这个函数说明都是incomplete的,想折腾还是得自己琢磨,比如怎么添加表情,怎么隐藏已登录用户信息,怎么添加广告等~~
    但是他们要求提交主题都得用这个。
    不过自己加action啊什么的也是好办法

    1. zwwooooo says:

      @阿修
      表情也解决鸟,下回分解

    2. 流年 says:

      @zwwooooo
      表情的我也解决了

    3. zwwooooo says:

      @流年
      希望不是和我的方法一样,我写了文章,后天发表吧,唉,文囧~要阁时间发表

    4. 流年 says:

      @zwwooooo
      我直接囧到最近啥都没写~~~

    5. zwwooooo says:

      @流年
      最近在折腾zBench主题的更新,就顺便写写这个解决文囧囧态

  5. OOXX says:

    对留言模块自定义要求高的话,还是得自己写个 comment_form 函数

    1. zwwooooo says:

      @OOXX
      其实这里写出这个方法是给提交WP官方时使用的,现在WP官方要求一定要用这个函数

    2. OOXX says:

      @zwwooooo
      唉,晕的,前几天我尝试着做主题,要在留言模块中添加几项自定义的元素,comment_form 能实现吗,例如在留言列表的 li 标签前面或后面添加自定义标签,comment_form 能实现吗

    3. OOXX says:

      @zwwooooo
      反正我最后没办法还是自己写了个 mytheme_comment

    4. zwwooooo says:

      @OOXX
      你好像搞错定义了,comment_form是发表评论的那个表单,看你的说明好像你当作是评论的输出函数了

    5. OOXX says:

      @zwwooooo
      额,我说的是这个

      function mytheme_comment($comment, $args, $depth) {
      $GLOBALS['comment'] = $comment; ?>
      <li id="comment-">

      <?php echo get_avatar($comment,$size='24',$default='' ); ?>

      $depth, 'max_depth' => $args['max_depth']))) ?>

    6. OOXX says:

      @zwwooooo
      嗯,是我弄错了

    7. zwwooooo says:

      @OOXX
      你说的是评论输出回调函数

  6. fblue says:

    :smile: 这两天我也在弄个新主题,评论表单也用comment_form()了,现在在想怎么添加表情。。

    1. zwwooooo says:

      @fblue
      我后天的文章有解决方法

  7. 竹下无为梦 says:

    好多人都用了,但我不喜欢就没折腾这个。
    因为这两个键按起来不方便啊。

    1. zwwooooo says:

      @竹下无为梦
      如果你是做打字,这两个键是很方便的

  8. winy says:

    不提交,自己用自己的

    1. zwwooooo says:

      @winy
      我是为了更新而折腾,很久没“生产”主题了

  9. Justice says:

    把事件绑定写在 JS 代码里面,不写在 onkeydown 属性里面就可以了。

    1. zwwooooo says:

      @Justice
      js当然方便,但我的这个主题是纯css+小量图标,这是这个主题的特色

    2. Justice says:

      @zwwooooo
      =.= 写在这个 onkeydown 里面也是 JS 代码...只不过位置不一样而已啊。你不想加载额外 JS 文件可以直接写在 script 标签里嘛。

    3. zwwooooo says:

      @Justice
      哦,也对,但我不太会js,能不用就不用吧

  10. 流年 says:

    这个直接写在JS里算了

    1. zwwooooo says:

      @流年
      zBench主题不用js,除了一个wp嵌套回复位置js

  11. 每天从你这个博客出发。看一个留言的就点别人的博客进去留言。今天也不例外。 :mrgreen:

    1. zwwooooo says:

      @快播电影
      原来我这是首发啊,不错不错

  12. A.shun says:

    :arrow: 3.0之后虽然也方便了,好罗嗦

    1. zwwooooo says:

      @A.shun
      也麻烦,可能熟悉“插”后就方便鸟

  13. 原来这样,很多博客还不支持这样提交呢

    1. zwwooooo says:

      @型男索女
      这只是方便访客发表评论

  14. 恩,期待下回分解

  15. 林木木 says:

    用jQuery代码应该不影响~

    1. zwwooooo says:

      @林木木
      我提交官网的主题都没有使用jQ,所以需要这样折腾

  16. Dianso says:

    官方都要求用3.0的代码了。。。。。

    1. zwwooooo says:

      @Dianso
      对啊,本来想让主题向下兼容,但要加那么多if/else干脆就升级只支持3.0+算了,反正主题已经很成熟了

  17. 小闇 says:

    除了是因為要交官方以外,換成新函數有什麼好處?修改方面會比較容易嗎 :?:

    1. zwwooooo says:

      @小闇
      好处嘛,不知道,只知道始终也要用的。

  18. 恩,的确变得方便起来

    1. zwwooooo says:

      @Code之行人
      方便中又要重新折腾

  19. 木本无心 says:

    看来与wp无缘了……

    1. zwwooooo says:

      @木本无心
      这个有无缘主要靠自己

  20. QiQiBoY says:

    W3C强调样式与内容分离(即尽量用css去控制样式,少用内联样式),同时也建议脚本与样式分离。。JS也最好通过事件添加函数附加到节点上。。。所以这种方法是不必管wp有没封装评论函数的。。 :mrgreen:

    1. zwwooooo says:

      @QiQiBoY
      呵呵,我只是为了通过他们的审核才用上的,其他的没关注,因为不懂。

回复给 Alan ¬
取消回复

昵称 *

网址

B em del U Link Code Quote