在 Bricks 评论表单中移除姓名与网站字段
更新于 2024 年 3 月 14 日。
在 BricksLabs 的 Facebook 群里,有用户问:
从 Bricks 的「Comments(评论)」元素中移除字段的最佳方法是什么?我想从 Bricks 评论元素里移除「Name(姓名)」和「Website(网站)」字段。我试过在默认 WP 评论表单上有效的代码片段,但它们对 Bricks 评论元素的字段似乎不起作用。希望能得到一些指导!
本教程提供从 Bricks 文章评论表单中移除姓名与网站字段的步骤。把代码放进子主题的 functions.php 或代码片段插件均可,后者可参考 在 Bricks 中使用 WPCodeBox 管理专属代码片段。
Bricks 1.9.7 及之后
在单篇文章模板中添加一个 Comments(评论)元素。
把它的 Source(来源)保持为「Bricks」。
在 FIELDS 选择控件中,只选择 Email(邮箱)。
Bricks 1.9.7 之前
该方法在 1.9.7 及之后同样有效。
第一步:移除字段
我们使用 comment_form_fields 过滤器,从评论表单中移除姓名与网站字段。
把它添加到子主题的 functions.php 或代码片段插件中:
// Remove Name and Website fields from the comment form
add_filter( 'comment_form_fields', function( $fields ) {
unset( $fields['author'] ); // Name field
unset( $fields['url'] ); // Website field
return $fields;
} );
第二步:关闭姓名必填
虽然我们已经在前端移除了必填的姓名字段,但表单仍然把它当作必填字段,不填就无法提交。
在 WP 后台,进入 Settings → Discussion,在「Other comment settings」下取消勾选「Comment author must fill out name and email」。
第三步:让邮箱成为必填
由于 WordPress 只允许我们把姓名和邮箱的必填条件作为一个整体移除,现在我们需要一种方式让邮箱重新成为必填。
把它添加到子主题的 functions.php 或代码片段插件中:
// Make Email field in comment forms required.
add_filter( 'preprocess_comment', function( $fields ) {
if ( $fields['comment_author_email'] == '' ) {
wp_die( 'Error: Please enter a valid email.' );
}
return $fields;
} );
第四步:为邮箱标签加星号
我们在表单中「Email」标签后加一个星号,提示访客这是必填项。
编辑你的单篇文章模板,在 Settings(齿轮图标)→ PAGE SETTINGS → CUSTOM CODE → Custom CSS 中添加:
.comment-form .form-group:first-child label::after {
content: " *";
}
参考资料
https://developer.wordpress.org/reference/hooks/comment_form_fields/
https://developer.wordpress.org/reference/hooks/comment_form_default_fields/
https://www.howtosolutions.net/2015/10/wordpress-comments-making-email-field-optional/
https://wordpress.stackexchange.com/a/294397/14380
add_filter( 'comment_form_fields', 'bricks_comment_form_fields_order' );
位于 wp-content/themes/bricks/includes/utilities/comments.php。
小结
在 Bricks 1.9.7+ 中,移除姓名/网站字段最简单的方式是直接把 Comments 元素的 FIELDS 设为仅 Email;在更早版本中,则用 comment_form_fields 过滤器 unset 掉 author 与 url,再到后台关闭「姓名必填」,并用 preprocess_comment 过滤器把邮箱重新设为必填,最后用一行 CSS 给邮箱标签加星号即可。
延伸阅读
Bricks 查询循环输出 ACF 图片字段的 Alt、Caption、标题数据
教程:Bricks 查询循环输出 ACF 图片字段的 Alt、Caption、标题数据——acf 附完整代码可直接复用,适合外贸独立站与 WordPress 开发者。
tutorialBricks 中输出 ACF Relationship 关联文章的数量
教程:Bricks 中输出 ACF Relationship 关联文章的数量——acf 附完整代码可直接复用,适合外贸独立站与 WordPress 开发者。
tutorialACF Relationship 字段 + Bricks 查询循环:显示关联文章
教程:ACF Relationship 字段 + Bricks 查询循环:显示关联文章——acf 附完整代码可直接复用,适合外贸独立站与 WordPress 开发者。
tutorial把任意自定义 WP_Query 循环接入 Bricks 查询循环
教程:把任意自定义 WP_Query 循环接入 Bricks 查询循环——Bricks 附完整代码可直接复用,适合外贸独立站与 WordPress 开发者。
