区块变体

欢迎来到本课程,我们将深入探讨如何扩展已注册的区块,并创建区块设置的替代版本。

通过本课程,你将学会:

  • 描述区块变体,
  • 区分区块变体和区块样式,
  • 将 JavaScript 文件添加到你的主题中,以及
  • 注册一个区块变体。

什么是区块变体?

区块变体是一种替代区块,你可以使用区块变体 API 将其添加到主题中。你将使用创建变体时所依据区块的已有属性。

你不需要构建过程,因为你可以选择从 functions.php 中加载自定义的 JavaScript 文件,同时传递一些依赖项。

你可以选择将区块变体放置在插件中或主题文件中。

如果你还没有机会查看《WordPress 初学者开发者学习路径》,请务必查看关于《开发 WordPress 插件》的模块。

区块变体与区块样式的对比

区块变体和区块样式有什么区别?

区块变体和区块样式的主要区别在于,区块样式会向区块应用一个 CSS 类,以便以替代方式进行样式设置。

让我们以 Twenty Twenty-Four 主题为例来看一下。

它们有一个带星号的区块样式。你会看到 CSS 类是 style asterisks。

这可以应用于标题,但这不是段落区块可用的区块样式,仅适用于标题区块。

如果你点击插入器并向下滚动,你会看到区块变体的示例。这些是 WordPress 核心自带的,其中每个嵌入都是一个区块变体。

要查看完整代码,你可以在 GitHub 上查看。

如果你想了解更多关于区块变体和区块样式之间的区别,可以参考一个很棒的在线工作坊。

添加 JavaScript

现在,让我们将 JavaScript 文件添加到你的主题中。

你可以将 JavaScript 文件命名为 block-variations,并将其放置在 assets 下的 JS 子文件夹中。

注册区块变体

现在,让我们注册区块变体。

你可以使用 functions.php 文件,打开你的 PHP,使用 enqueue_block_editor_assets 动作钩子,并使用 wp_enqueue_script 函数。

你在这里看到,block-variations.js 文件被调用,并附带了一个依赖项数组。

<?php
function my_theme_enqueue_block_editor_assets() {
    wp_enqueue_script(
        'my-theme-block-variations',
        get_template_directory_uri() . '/assets/js/block-variations.js',
        array( 'wp-blocks', 'wp-dom-ready', 'wp-i18n' ),
        wp_get_theme()->get( 'Version' ),
        true
    );
}
add_action( 'enqueue_block_editor_assets', 'my_theme_enqueue_block_editor_assets' );
?>

后续步骤

你可以通过参考区块编辑器手册来了解更多关于变体的信息,或者查看主题手册。最后,WordPress.org 的 WordPress 开发者博客上有一篇很棒的博文。