2012-08-07 47 views
1

我想定制的如何自定义WordPress的评论提交按钮

<?php comment_form(); ?> 

输出代码目前提交按钮输出以下:

<p class="form-submit"> 
    <input name="submit" type="submit" id="submit" value="Post Comment"> 
    <input type="hidden" name="comment_post_ID" value="486" id="comment_post_ID"> 
    <input type="hidden" name="comment_parent" id="comment_parent" value="0"> 
</p> 

我会把它想输出如下:

<div class="darkbutton" onclick="document.commentform.submit()"> 
    <span class="darkbutton-left"></span><a href="javascript: submitform()">Log In</a> 
    <span class="darkbutton-right"></span> 
</div> 

以便完全重新设置按钮。现在我知道这可以通过编辑comment-template.php中的核心Wordpress文件来完成,但是如果有任何其他方法,我真的不希望这样做。

任何建议非常感谢! :)

回答

1

Wrodpress有“Pluggable Functions”这可以让你覆盖一些核心功能。这很有用,因为它们在升级等时不会覆盖您的更改。但是,它看起来并不像comment_form()就是其中之一。

如果您希望避免修改核心文件,为什么不编辑您的模板文件来输出所需的代码而不是调用comment_form()函数?否则,我敢肯定你只需要修改该文件。

+0

后,我会很高兴这样做,但我不知道实际的全输出代码是什么! – Tenatious 2012-08-07 16:07:07

+0

有许多钩子和过滤器可以修改评论表单默认http://justintadlock.com/archives/2010/07/21/using-the-wordpress-comment-form – Brad 2014-06-03 15:39:06

+0

@BradDalton,你能指出在哪里该帖子说,如何添加按钮类或'

0

您可以阅读关于此问题的一些讨论here,但它看起来没有对WP代码库进行任何修复。

现在,我正在使用jQuery在客户端对我的按钮进行样式更改。你可以生成你的<div>块与jQuery,然后做这个隐藏自己form-submit块:

.form-submit { 
    display: none; 
} 

这不是万无一失的代码,但它是一个黑客工具,将工作,直到他们实现更好的东西。

3

我需要添加一个类来形成标签和提交按钮。我不知道我在哪里找到它,但这个解决方案帮了我。您必须修改str_replace以满足您的需求。

ob_start(); 
comment_form($comments_args, $post_id); 
$form = ob_get_clean(); 
$form = str_replace('class="comment-form"','class="comment-form my-class"', $form); 
echo str_replace('id="submit"','class="btn btn-warning"', $form); 
+1

聪明的黑客可以完成工作。我无法相信定制博客平台的评论表单会带来多大的痛苦。 – 2014-03-19 04:55:03

7

有一招

.form-submit{display: none;} 

可以以下

$args = array(
'comment_notes_after' => '<button type="submit" id="submit-new"><span>'.__('Post Comment').'</span></button>' 
); 
comment_form($args); 
+0

另请参阅3天前登陆的此更改:https://core.trac.wordpress.org/changeset/29809 – 2014-10-05 06:23:19