通过重力形式增强形式弹性
gravity forms 是 rocketgenius 的一款产品,是 wordpress 的综合表单解决方案。任何开发人员都会告诉您,构建表单有时会非常耗时,尤其是当它需要做的不仅仅是处理消息时。
如果您需要一个表单来根据特定条件将用户注册到您的网站,该怎么办?或者,如果您需要一个允许用户从前端角度将内容发布到您的网站的表单,该怎么办? Gravity Forms 可以做到所有这些,而它无法做到的开箱即用的功能,您可以利用其内置的钩子和过滤器自行构建。
在我讨论 Gravity Forms 如何扩展您的 WordPress 安装之前,请务必注意 Gravity Forms 是一个高级插件。要获得本文中讨论的一些好东西,您至少需要一个重力形式的商业许可证,但是我强烈推荐开发人员许可证,因为它可以为您带来最大的收益。现在我们已经解决了这个问题,让我们看一下 Gravity Forms 扩展 WordPress 网站的几种方法。
扩展用户注册表
可以通过向 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; } ?>
代码的第一部分使用过滤器进行重力形式验证,并创建一个测试相关字段长度的函数。请注意此片段中的数字 7 和 3。 7表示表单ID,3表示正在测试的实际输入ID。
重力形式文档包括可用钩子和过滤器的列表,以及每个钩子和过滤器的详细示例 - 有时您甚至可以看到何时/为何需要它们。
结论
如果您正在寻找一种开箱即用的表单解决方案,其功能不仅仅是发送电子邮件,那么重力表单是一个不错的选择 - 并且可以节省时间。可能性是无限的。对于那些因购买价格而对使用重力形式争论或持观望态度的人来说,它可能看起来很高,但使用重力形式所节省的好处和开发时间是值得的。
通过重力形式增强形式弹性的详细内容,更多请关注红帽云邮其它相关文章!