trendwerk / acf-forms
用于前端使用 ACF 表单的助手。
0.2.0
2021-01-22 14:57 UTC
Requires
- php: >=7.1
This package is auto-updated.
Last update: 2024-09-22 22:59:31 UTC
README
此包的活跃开发已停止。
用于前端使用 ACF 表单的助手包。它能做什么
- 增加发送通知的能力
- 默认的 "管理员" 通知
- 将条目保存到数据库
- 在
acf_form
上添加包装,执行重复性工作
此包需要安装 Advanced Custom Fields Pro v5。
安装
composer require trendwerk/acf-forms
使用
使用此包创建和显示表单包括四个部分
初始化
$acfForms = new \Trendwerk\AcfForms\AcfForms(); $acfForms->init();
这段代码应该在启动你的主题时运行(通常通过 functions.php
完成)。初始化会创建 entries
文章类型,并设置默认表单处理器和通知。
创建字段组
在 Advanced Custom Fields 中创建一个新的字段组。当选择显示此字段组的位置时,请确保使用 表单 > 前端
等于 是
。
注册表单
$acfForms->register($name, $options);
渲染
渲染表单包括两部分
- 显示表单
- 处理表单数据并将脚本排队(
Form::head()
)
例如
use Trendwerk\AcfForms\Form\Form; Form::head(); ... $form = new Form($name); $form->render();
实际上,render
方法将在你的实际模板内部某处被调用。
选项
通知
可以通过扩展 Notification
抽象类或默认的 Admin
通知类来创建通知。
示例
以下示例基于字段组,逐步演示创建和显示表单的所有三个步骤。此示例使用 Twig、Timber 和 Sphynx。
functions.php
$acfForms = new \Trendwerk\AcfForms\AcfForms(); $acfForms->init(); $acfForms->register('contact', [ 'acfForm' => [ 'field_groups' => ['group_565474dcb9dd0'], ], 'label' => 'Contact', ]);
字段组密钥可以在显示字段组的 slug
或相应的 JSON 文件中找到。
page-contact.php
<?php // Template name: Contact use Timber\Post; use Trendwerk\AcfForms\Form\Form; Form::head(); $context = Timber::get_context(); $context['post'] = new Post(); $context['form'] = new Form('contact'); Timber::render('page-contact.twig', $context);
page-contact.twig
{% extends 'base.twig' %} {% block content %} <h1> {{ post.title }} </h1> {{ post.content }} {{ form.render() }} {% endblock %}