micropackage/block-loader

块加载器 - 从模板文件自动创建 Gutenberg 块。

1.0.6 2022-03-19 19:24 UTC

This package is auto-updated.

Last update: 2024-09-20 00:28:14 UTC


README

BracketSpace Micropackage Latest Stable Version PHP from Packagist Total Downloads License

Micropackage logo

需要 WordPress >=5.8.0。

🧬 关于块加载器

块加载器直接从块模板文件加载 Gutenberg 块配置。它解析文件头注释,找出如何注册块。

基本上,你可以这样做

acf_register_block_type( [
	'name'              => 'sample-block',
	'title'             => __('Sample Block'),
	'render_template'   => 'blocks/sample-block.php',
] );

只需初始化加载器一次

Micropackage\BlockLoader\BlockLoader::init( [
	'dir' => 'blocks',
] );

并在模板中直接定义块配置(blocks/sample-block.php

<?php
/**
 * Block Name: Sample Block
 */

...

支持的插件

  • 高级定制字段
  • 元框

此微包与 ACF 块创建器 兼容,后者可以在定义新块的字段组时为您创建块模板。

💾 安装

composer require micropackage/block-loader

🕹 使用

在您开始创建块之前,您需要传递可选的配置数组来初始化块加载器

Micropackage\BlockLoader\BlockLoader::init( [
	'dir'        => 'blocks',
	'categories' => [],
	'wrap'       => '<div id="%3$s" class="%2$s">%1$s</div>', // ACF only
] );

块基于默认位于您的主题 blocks 文件夹中的模板文件(您可以更改此位置)。

创建块有两个步骤

  1. blocks 文件夹中创建块模板文件
  2. 使用 ACF 或元框定义您块的自定义字段。

块模板文件需要包含包含块参数的注释头。

<?php
/**
 * Block Name: (required)
 * Description:
 * Category:
 * Icon:
 * Keywords: (comma-separated)
 * Post Types: 	(comma-separated, ACF only)
 * Mode: (ACF only)
 * Align: (ACF only)
 * Enqueue Style:
 * Enqueue Script:
 * Enqueue Assets:
 * Supports Align: (comma-separated)
 * Supports Anchor: (true|false)
 * Supports Custom Class Name: (true|false)
 * Supports Mode: (true|false, ACF only)
 * Supports Multiple: (true|false)
 * Supports Reusable: (true|false)
 */

ACF

创建模板文件足以让 ACF 注册块。之后,您只需创建新的字段组并将其位置设置为自定义块。

元框

在元框中,您需要“MB 块”扩展来与块一起工作。使用此插件,自定义字段在代码中定义。您需要使用 rwmb_meta_boxes 过滤器为您的块创建元框。

假设您有一个名为 blocks/some-block.php 的模板。您需要添加如下字段定义

add_filter( 'rwmb_meta_boxes', function( $meta_boxes ) {
	$meta_boxes[] = [
		'id'     => 'some-block',
		'type'   => 'block',
		'fields' => [
			// ...fields configuration
		],
	];

	return $meta_boxes;
} );

所有块参数都将从模板头注释中提取,并与您的字段配置合并。

⚙️ 配置

所有参数都是可选的。

分类定义

这是定义分类数组的方法。

	...
	'categories' => [
		[
			'slug'  => 'custom-cat',
			'title' => __( 'Custom Category', 'textdomain' ),
			'icon'  => 'book-alt',
		],
		...
	],
	...

包装模板

在内部 sprintf 中使用的参数

  1. 来自模板文件的块内容,应该被包装
  2. 块类字符串
  3. 唯一的块 ID

示例:'<div id="%3$s" class="%2$s">%1$s</div>'

📦 关于微包项目

微包 - 如其名所示 - 是带有少量可重用代码的微包,特别是在 WordPress 开发中非常有用。

目标是拥有多个包,可以将它们组合在一起来创建更大的东西,只需定义结构。

微包由 BracketSpace 维护。

📖 变更日志

查看变更日志文件.

📃 许可证

GNU 通用公共许可证 (GPL) v3.0。有关更多信息,请参阅 LICENSE 文件。

© 致谢

加载器引擎基于 palmiakTimber ACF WP Blocks