trendwerk/acf-forms

用于前端使用 ACF 表单的助手。

0.2.0 2021-01-22 14:57 UTC

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

使用

使用此包创建和显示表单包括四个部分

  1. 初始化包
  2. 创建字段组
  3. 注册表单
  4. 渲染表单

初始化

$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 通知类来创建通知。

示例

以下示例基于字段组,逐步演示创建和显示表单的所有三个步骤。此示例使用 TwigTimberSphynx

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 %}