》》最近在折腾 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&&event.keyCode==13){document.getElementById('submit').click();return false};"></textarea>
其中的&&是&&运算符,在设置 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
赏
oooo
or
- 本文标题:WP3.0新增的comment_form()函數实现Ctrl+Enter提交评论
- 本文链接:https://zww.me/archives/25312
- 发布时间:2010年09月28日 10:18
- 版权声明:除非注明,文章均为 zwwooooo 原创,转载请以链接形式标明本文地址!
期待下回分解!
@Jayuh
你又沙发鸟!
Warning: Undefined array key 1 in /www/wwwroot/zww/zww.me/wordpress/wp-content/plugins/wp-useragent/wp-useragent-detect-webbrowser-version.php on line 32
手機黨遲來了
手机党前来支持!放狗搜 这是你的专用名词不。。好冷啊
@球犯
不是,很多用,但不是指搜狗,是google的读音“狗狗”
官方的这个函数说明都是incomplete的,想折腾还是得自己琢磨,比如怎么添加表情,怎么隐藏已登录用户信息,怎么添加广告等~~
但是他们要求提交主题都得用这个。
不过自己加action啊什么的也是好办法
@阿修
表情也解决鸟,下回分解
@zwwooooo
表情的我也解决了
@流年
希望不是和我的方法一样,我写了文章,后天发表吧,唉,文囧~要阁时间发表
@zwwooooo
我直接囧到最近啥都没写~~~
@流年
最近在折腾zBench主题的更新,就顺便写写这个解决文囧囧态
对留言模块自定义要求高的话,还是得自己写个 comment_form 函数
@OOXX
其实这里写出这个方法是给提交WP官方时使用的,现在WP官方要求一定要用这个函数
@zwwooooo
唉,晕的,前几天我尝试着做主题,要在留言模块中添加几项自定义的元素,comment_form 能实现吗,例如在留言列表的 li 标签前面或后面添加自定义标签,comment_form 能实现吗
@zwwooooo
反正我最后没办法还是自己写了个 mytheme_comment
@OOXX
你好像搞错定义了,comment_form是发表评论的那个表单,看你的说明好像你当作是评论的输出函数了
@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']))) ?>
@zwwooooo
嗯,是我弄错了
@OOXX
你说的是评论输出回调函数
这两天我也在弄个新主题,评论表单也用comment_form()了,现在在想怎么添加表情。。
@fblue
我后天的文章有解决方法
好多人都用了,但我不喜欢就没折腾这个。
因为这两个键按起来不方便啊。
@竹下无为梦
如果你是做打字,这两个键是很方便的
不提交,自己用自己的
@winy
我是为了更新而折腾,很久没“生产”主题了
把事件绑定写在 JS 代码里面,不写在 onkeydown 属性里面就可以了。
@Justice
js当然方便,但我的这个主题是纯css+小量图标,这是这个主题的特色
@zwwooooo
=.= 写在这个 onkeydown 里面也是 JS 代码...只不过位置不一样而已啊。你不想加载额外 JS 文件可以直接写在 script 标签里嘛。
@Justice
哦,也对,但我不太会js,能不用就不用吧
这个直接写在JS里算了
@流年
zBench主题不用js,除了一个wp嵌套回复位置js
每天从你这个博客出发。看一个留言的就点别人的博客进去留言。今天也不例外。
@快播电影
原来我这是首发啊,不错不错
3.0之后虽然也方便了,好罗嗦
@A.shun
也麻烦,可能熟悉“插”后就方便鸟
原来这样,很多博客还不支持这样提交呢
@型男索女
这只是方便访客发表评论
恩,期待下回分解
@掌柜的马甲
哈哈
用jQuery代码应该不影响~
@林木木
我提交官网的主题都没有使用jQ,所以需要这样折腾
官方都要求用3.0的代码了。。。。。
@Dianso
对啊,本来想让主题向下兼容,但要加那么多if/else干脆就升级只支持3.0+算了,反正主题已经很成熟了
除了是因為要交官方以外,換成新函數有什麼好處?修改方面會比較容易嗎
@小闇
好处嘛,不知道,只知道始终也要用的。
恩,的确变得方便起来
@Code之行人
方便中又要重新折腾
看来与wp无缘了……
@木本无心
这个有无缘主要靠自己
W3C强调样式与内容分离(即尽量用css去控制样式,少用内联样式),同时也建议脚本与样式分离。。JS也最好通过事件添加函数附加到节点上。。。所以这种方法是不必管wp有没封装评论函数的。。
@QiQiBoY
呵呵,我只是为了通过他们的审核才用上的,其他的没关注,因为不懂。