可以通过向 functions.php 文件添加代码来向注册表单添加额外的字段,但您可以通过让 Gravity Forms 完成繁重的工作来避免在后台花费太多时间。使用 Gravity Forms 创建用户和分配用户角色非常简单,您只需创建一个表单,将您的字段与 WordPress 默认字段相匹配,然后选择提交时要分配的用户角色。您还可以对同一个表单进行多个“注册”。
重力形式如何扩展用户注册过程的一个例子是条件注册。例如,如果您的会员网站仅允许电子邮件地址为“@xyz.com”和“@abc.com”的用户进行注册,则您可以添加仅创建用户并将其分配给基于角色的注册源。判断他们是否符合该标准,同时不允许其他人注册。
这种条件逻辑远远超出了用户注册的范围,您可以在任何类型的表单中创建条件字段。例如,如果您想根据用户的年龄组向用户显示其他字段,您可以根据用户的响应选择显示(或选择隐藏)其他字段来自定义字段。

使用重力形式进行前端内容提交
如果您希望为用户提供更强大的前端,重力表单可以是一个很好的解决方案,它允许用户直接向帖子提交内容。您所需要做的就是创建一个使用内置帖子字段功能的表单。这些帖子字段映射到默认帖子标题、正文内容、摘录、特征图像、类别和标签。 Gravity Forms 还将表单数据映射到自定义字段。要将您的内容映射到自定义字段:

没有看到下拉列表中列出的自定义字段?返回您的帖子并创建一个包含自定义字段中的内容的“草稿”并保存。然后返回您的重力表并再次检查。
当 Gravity Forms 与插件 Gravity Forms + 自定义帖子类型结合使用时,该组合通过允许将表单数据映射到自定义帖子类型(因此成为该插件的名称)来提供更多功能。如果您担心安装太多插件 - 并且只需要对自定义分类法的支持 - 您始终可以通过 functions.php 文件挂钩到 Gravity Forms 来手动添加支持。
谈到钩子和过滤器
重力形式附带大量文档。如果你能梦想,你就可能实现它。您可以利用多种挂钩和过滤器,最好的部分是您可以将它们分配给单独的表单。假设您希望允许用户向您的网站提交帖子,但您希望控制其标题长度,您可以创建自定义验证逻辑来限制输入的长度。请参阅示例。
add_filter( 'gform_validation_7', 'title_size' );
function title_size( $validation_result ) {$form = $validation_result["form"];
// assuming we don't want input_3 to be longer than 75 characters.
if ( strlen( $_POST['input_3'] ) > 75 ) {
// set the form validation to false
$validation_result["is_valid"] = false;
// find field with ID we're looking for and marking it as failed validation
foreach ( $form["fields"] as &$field ) {
// replace 3 with the field id number you're validating
if ( $field["id"] == "3" ) {
$field["failed_validation"] = true;
$field["validation_message"] = "Title is too long.";
break;
}
}
}
// change object back to the result
$validation_result["form"] = $form;
return $validation_result;
}
?>