如何自定义 WordPress 评论提交按钮

Posted

技术标签:

【中文标题】如何自定义 WordPress 评论提交按钮【英文标题】:How To Customise WordPress Comment Submit Button 【发布时间】:2012-08-04 16:40:44 【问题描述】:

我正在尝试自定义输出代码

<?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() 函数呢?否则,我很确定您只需要修改该文件。

【讨论】:

我很乐意这样做,但我不知道实际的完整输出代码是什么! 有大量的钩子和过滤器来修改评论表单的默认值justintadlock.com/archives/2010/07/21/… @BradDalton,您能否指出该帖子的哪个位置说如何添加按钮类或&lt;button&gt; 选择器?【参考方案2】:

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

目前,我正在使用 jQuery 对客户端按钮的样式进行更改。您可以使用 jQuery 生成 &lt;div&gt; 块,然后通过执行以下操作隐藏它们的 form-submit 块:

.form-submit 
    display: none;

这不是万无一失的代码,但它是一个 hack,在他们实现更好的东西之前会起作用。

【讨论】:

【参考方案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);

【讨论】:

完成工作的聪明技巧。我简直不敢相信自定义博客平台的评论表单是多么痛苦。【参考方案4】:

有一个技巧

.form-submitdisplay: none;

你可以关注

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

【讨论】:

另请参阅此更改,它于 3 天前登陆:core.trac.wordpress.org/changeset/29809

以上是关于如何自定义 WordPress 评论提交按钮的主要内容,如果未能解决你的问题,请参考以下文章

WordPress 自定义表单在管理面板上提交数据视图?

如何在使用 wordpress 以自定义表单提交之前获取图像 url 并发送邮件?

在bot框架v4中,如何通过评论框和提交按钮实施评分卡

如何在视图中点击提交按钮而不必先关闭键盘?

WordPress 自定义帖子类型前端特色图片提交

WordPress - Ninja Forms:如何以编程方式编辑保存的提交?