我是否正确地假设第一个是针对登录用户的,第二个是针对非登录用户的?
对
“一幅画胜过千言万语”;因此,请参阅并比较下面的示例输出/预览。(使用的主题是“2019”主题。)
1。comment_form_logged_in_after
如果当前用户已登录,WordPress将运行此钩子。
您可以使用此挂钩在打开后添加内容<form>
标记,或者更准确地说,在通过comment_form_top
钩子-注释字段(即文本框)前会显示一些内容/textarea
用于输入注释文本/内容)。
这个钩子基本上是使用comment_form_top
钩住is_user_logged_in()
:
// Note that WordPress runs comment_form_top regardless the user is logged-in or not.
add_action( \'comment_form_top\', function () {
if ( is_user_logged_in() ) {
echo \'comment_form_top: is logged-in<br />\';
} else {
echo \'comment_form_top: not logged-in<br />\';
}
} );
2。comment_form_after_fields
如果当前用户未登录,WordPress将运行此挂钩。
您可以使用此挂钩在表单中的最后一个字段和提交按钮之间添加内容-在下面的预览中,最后一个字段是“保存我的姓名、电子邮件…”下面的字段(即cookies同意)。
这个钩子类似于comment_form_before_fields
您可以使用它在表单的注释字段和名称字段之间添加内容。
因此,参考this answer, 这个add_my_custom_field_to_comment_form
函数连接到两个comment_form_logged_in_after
和comment_form_after_fields
这样,对于经过身份验证的用户和未经身份验证的用户,都会显示自定义字段。
原因:当用户未通过身份验证时,注释字段后会显示额外的表单字段。当用户通过身份验证时,默认情况下不会显示额外的表单字段。(额外表单字段是注释字段以外的字段;请参阅$fields
.)
(注意,这个答案涵盖了WordPress中的默认行为。插件和主题可能会更改any ,例如使用CSS/JavaScript更改元素的位置/可见性等。)以及评论表单的所有当前可用挂钩(即。comment_form()
), 检查this.