pxlrbt / acf-configurator
此包已被弃用且不再维护。未建议替代包。
用于在 PHP 中轻松本地配置 ACF 的包装器。
0.3.2
2021-01-23 12:37 UTC
README
用于在 PHP 中轻松本地配置高级自定义字段(Advanced Custom Fields)的包装器。
当你想在 PHP 中定义 ACF 组而不是通过数据库时,ACF Configurator 就派上用场了。由于 ACF 的标准配置方式是一个长多维数组,所以很容易变得混乱。ACF Configurator 提供了一种简单、直观的方式来配置 ACF 组和字段。它使用一种简短、面向对象的语法进行配置。
为什么不使用高级自定义字段 GUI?
高级自定义字段插件提供了一个便捷的界面,方便在 WordPress 中管理组和字段。即使客户也可以轻松编辑字段,即使他们对这些了解不多。但通过 PHP 配置有一些优点
- 不加载数据库。 配置不再存储在数据库中,也不需要在每次页面加载时检索。
- 将代码和配置耦合在一起。 配置不属于数据库。自定义字段和主题代码库通常紧密耦合。不更新代码而更改字段可能会破坏某些内容。
- 更容易迁移。 如果需要更新主题,你通常首先在开发环境中测试它。在部署新代码之前,将你做的所有更改转移到你的实时站点可能会破坏某些内容,或者至少是非常烦人的。
安装
通过 Composer 安装此包
composer require pxlrbt/acf-confgurator
使用(示例)
只需导入 ACF Configurator 并开始配置。组类负责注册。
<?php use pxlrbt\AcfConfigurator\FieldGroup; use pxlrbt\AcfConfigurator\Condition\Condition; use pxlrbt\AcfConfigurator\Location\Location; use pxlrbt\AcfConfigurator\Fields\Email; use pxlrbt\AcfConfigurator\Fields\Text; use pxlrbt\AcfConfigurator\Fields\TrueFalse; use pxlrbt\AcfConfigurator\Fields\Repeater; use pxlrbt\AcfConfigurator\Fields\Image; FieldGroup::make('Test group', 'test') ->location(function($condition) { $condition->if(Location::$PARAM_POST_TEMPLATE, Location::$OPERATOR_EQUALS, 'template.php') ->andIf(Location::$PARAM_POST_TYPE, Location::$OPERATOR_EQUALS, 'page'); }) ->fields([ Text::make('Text field', 'text') ->placeholder('Placeholder') ->required(true), TrueFalse::make('Show email?', 'show_email') ->select2(true), Email::make('Email address', 'email') ->condition(function($condition) { $condition->if('field_show_email', Condition::$OPERATOR_EQUALS, true); }) ->required(true) ->placeholder('your-email@example.com'), Repeater::make('Items', 'items') ->fields([ Textfield::make('Description', 'description'), Image::make('Image', 'item__image') ->returnFormat(Image::$FORMAT_ID) ]) ]) ->hide(FieldGroup::$HIDE_EDITOR) ->hide(FieldGroup::$HIDE_TRACKBACKS);
替代方案
这个插件不符合你的需求?这里有几种替代方案
贡献
欢迎对这个项目做出贡献。你可以自由地添加非标准字段类型或提出改进建议。