wp63 / acf-block-loader
用于简化 ACF Gutenberg 块注册的包装类
v1.3.0
2019-11-25 09:04 UTC
Requires
- php: >=7.1
This package is auto-updated.
Last update: 2024-09-25 21:17:19 UTC
README
用于简化 ACF Gutenberg 块注册的包装类
安装
composer require wp63/acf-block-loader
使用方法
默认情况下,类文件应存储在主题根目录中的 Blocks 目录内(或在 Sage 9 中为 app\Blocks)。文件名应与类名相同,如 PSR-4。
- 创建一个扩展
WP63\Block的类 - 类默认命名空间为
WP63\Blocks\ - 类必须至少有 2 个方法:
register()和静态的render()
<?php namespace App\Blocks; use WP63\Block; class MyBlock extends Block { protected function register() { return [ 'name' => $name, 'title' => $title, 'category' => $category, 'fields' => $fields, ]; } public static function render( $options ) { // You can directly render HTML within `render()` method ... display block html ... // Or alternatively, return an array for Blade template engine in Sage 9 return [ 'name' => 'value', // $name in template file 'foo' => 'bar', // $foo in template file ]; } }
register() 方法将返回一个包含 3 个键的数组
$name块的唯一名称$title块标题$category块类别。预定义类别包括 [ common | formatting | layout | widgets | embed ] (可选)$fieldsACF 字段StoutLogic\AcfBuilder\FieldsBuilder对象。是FieldsBuilder::build()方法的输出。
render() 是用于渲染实际块的静态方法。此方法内部生成的所有输出都将成为块 HTML 的一部分。渲染方法将通过 $options 参数从 ACF 获取 4 个回调参数
- 数组
$options->block块设置和属性。 - 字符串
$options->content块内部 HTML(为空)。 - 布尔值
$options->is_preview在 AJAX 预览期间为真。 - 整数|字符串
$options->post_id此块保存到的帖子 ID。
过滤器
wp63/acf_block_namespace更改块命名空间。默认:App\Blocks\wp63/acf_block_directory更改目录名称。默认:./Blockswp63/acf_block_template_directory更改 Blade 模板目录。相对于/views目录。默认:blocks
动作
wp63/before_block_render在每个块渲染之前wp63/before_block_render/{$block_name}在$block_name渲染之前wp63/after_block_render在每个块渲染之后wp63/after_block_render/{$block_name}在$block_name渲染之后
在 Sage 9 中使用 Blade 模板引擎
- 在
render()类方法中,直接输出内容之前,返回一个包含所有要暴露给 Blade 模板文件的数据的数组。 - 在
views/blocks中创建模板文件,文件名必须与块名称($name)相同。例如:views/blocks/hero-banner.blade.php