amphibee / acf-blocks
提供抽象类以帮助构建基于 ACF 的 Gutenberg 块
1.2
2022-08-20 09:32 UTC
Requires
- php: ^7.4 || ^8.0
- vinkla/extended-acf: ^13.1
Requires (Dev)
- phpunit/phpunit: 9.5.22
- squizlabs/php_codesniffer: 3.7.1
This package is auto-updated.
Last update: 2024-09-19 13:42:31 UTC
README
使用 ACF 和 WordPlate 扩展 ACF 快速声明您的 Gutenberg 块
要求
此包需要以下插件
- 高级自定义字段 Pro
- WordPlate 扩展 ACF(包含在 ACF 块包中)
安装
使用 Composer,在项目的根目录中需要此包。
composer require amphibee/acf-blocks
用法
声明一个块
use \AmphiBee\AcfBlocks\Block; use \Extended\ACF\Fields\Text; use \Extended\ACF\Fields\Textarea; Block::make('My beautiful block', 'my_beautiful_block') ->setFields([ Text::make('Title', 'title'), Textarea::make('Content', 'content'), ]) ->disableCustomClasseName() ->setAllowedBlocks([ 'core/paragraph', 'core/heading', ]) ->setJsxTemplate([ ['core/heading', [ 'level' => 2, 'placeholder' => 'Title Goes Here', ]], ['core/paragraph', [ 'placeholder' => 'Content goes here', ]] ]) ->loadAllFields() ->setMode('edit') ->setIcon('format-aside') ->setAlign('full') ->enableJsx() ->setRenderTemplate('partials/my-beautiful-block.php');
ACF 块也与 Blade 视图兼容!
use \AmphiBee\AcfBlocks\Block; use \Extended\ACF\Fields\Text; use \Extended\ACF\Fields\Textarea; Block::make('My beautiful block', 'my_beautiful_block') ->setFields([ \Extended\ACF\Fields\Text::make('Title', 'title'), \Extended\ACF\Fields\Textarea::make('Content', 'content'), ]) ->setMode('preview') ->setIcon('editor-code') ->setAlign('wide') ->enableJsx() ->setView('partials.my-beautiful-block', [ 'key' => 'value', ]);
渲染一个块
原始 PHP 模板
<div class="p-4"> <?php var_dump($viewData); ?> <h1><?php echo $field->title; ?></h1> <p><?php echo $field->content; ?></p> <?php echo $innerBlocks ?> </div>
Blade 视图
<div class="p-4"> <h1>{{$field->title}}</h1> <p>{{$field->content}}</p> <p>{{$viewData['key']}}</p> {!! $innerBlocks !!} </div>
声明一个类别
use \AmphiBee\AcfBlocks\BlockCategory; BlockCategory::make('My beautiful category', 'my_beautiful_category') ->setIcon('wordpress')