自定义wordpress评论表单html

Lor*_*eck 6 php wordpress

我想修改WordPress中评论表单的实际HTML.我知道comment_form()WordPress提供的功能,但它实际上并没有让我修改表单的html.我特别想做的是制作一个自举响应表单,这是comment_form()函数提供的选项所不具备的.我试过在互联网上寻找一种方式,但无济于事.谁能指出我正确的方向?

让我澄清一下:

我希望修改实际的FORM并包含注释表单的DIV元素,而不仅仅是字段.

luk*_*cke 10

函数的comment_form()不可自定义部分应该(理想情况下)仅限于对WordPress核心的安全性和正确表单处理至关重要的代码.但事实并非如此.为了探索这个问题,我使用过滤器(可以使用参数)来完全删除所有可自定义的代码.我将所有可用变量设置为空字符串 - 即,在codex页面上提到的所有内容comment_form().

以下是来自以下的剩余,不可自定义的代码comment_form():

<div id="respond" class="comment-respond">
    <h3 id="reply-title" class="comment-reply-title"> <small><a rel="nofollow" id="cancel-comment-reply-link" href="/1#respond" style="display:none;">Click here to cancel reply.</a></small></h3>
    <form action="http://www.[yourdomain].com/wp-comments-post.php" method="post" id="" class="comment-form">
        <p class="form-submit">
            <input name="submit" type="submit" id="" value="" />
            <input type='hidden' name='comment_post_ID' value='1' id='comment_post_ID' />
            <input type='hidden' name='comment_parent' id='comment_parent' value='0' />
        </p>
    </form>
</div><!-- #respond -->
Run Code Online (Sandbox Code Playgroud)

这一切从何而来?在comment_form()它的法典页面的底部说...

源代码

comment_form()位于wp-includes/comment-template.php中.

comment-template.php已链接,您可以在浏览器中查看完整代码.comment_form()从1960年开始.事实上,它是该文件中的最后一个功能.没有参数或过滤器可以让您修改上面的残留代码.这些代码行都是更加"硬编码"的.

文字点击这里取消回复.是我过滤种族灭绝幸存下来的唯一文本.奇怪的是,comment_form()备份文本用于cancel_reply_link硬编码到函数中,以防它作为空字符串传递给函数.其他可过滤的项目都没有硬编码的备份.

很容易看出哪些代码是必不可少的,哪些位对于HTML表单来说不是必需的.更难以判断哪些位对于WordPress表单至关重要.上面的一些位是动态输出的(请注意,这是开发博客上的第一条评论,没有其他回复,没有父/子评论).

comment_form()函数中comment-template.php可以得出生成WordPress表单动态部分所需的代码.然后,使用从codex页面获取的默认参数comment_form(),您可以拼凑一个准系统表单,硬编码所需的字段,标签和包装HTML.我现在正在这样做,并将我的自定义表单功能放在我的主题comments.php模板文件中,我comments_template()只调用它single.php(对于这个特定的主题).

结果将是一个完整,恰当,精益和平均的WordPress评论表单.但是......它将是一个无法使用comment_form()参数或相关过滤器进行自定义的表单,除非您继续将过滤器代码包含在您自己的注释表单函数中.既然你已经定制了它,那可能不是问题.同样,除非您还在自己的注释表单函数中触发了这些操作函数,否则所有WordPress操作也将对您或任何其他插件不可用.同样,此时可能不是您的问题.

但最重要的是,如果未来的WordPress更新改变了核心处理表单的方式,则生成的表单可能会破坏您的主题.

如果你意识到这些风险,你可以重建一个手工编码的评论表格,只需复制代码x页面comment_form()上的代码和wp-includes/comment-template.php.我没有完成的代码,否则我会发布它.但是如果我成功的话,我会发布.

是的,现在这一切都来自我.请记住(所有读者),尽管出现,我是业余的WordPress主题开发人员,我对PHP和WordPress的熟练程度非常简陋.刚写完这篇文章我学到了很多东西.

我也担心某个地方已经有一个完整而正确的解决方案,但我没有在我的搜索中找到它.