目录
先决条件
背景
核心块支持
实现块样式变化
一个小问题!
结论
首页 后端开发 php教程 为 WordPress 古腾堡块设计自定义样式:第 1 部分

为 WordPress 古腾堡块设计自定义样式:第 1 部分

Aug 29, 2023 pm 04:21 PM

现在对于 WordPress 开发者来说是一个激动人心的时刻,5.0 版本的正式发布即将到来。这将标志着代号为古腾堡的全新编辑器的首次亮相。如果您经常与 WordPress 打交道,无论是作为开发人员还是作为用户,那么您可能会明白为什么这是一个大新闻。

不过,并不是所有人都期待新版本,因为它确实为 WordPress 带来了非常不同的编辑体验。这将如何影响更广泛的 WordPress 生态系统存在一些不确定性。然而,新的编辑器有可能彻底改变您为 WordPress 网站创建内容的方式。尽管它在吸引用户时可能会遇到最初的阻力全体,但我认为它最终可以以经典的 TinyMCE 编辑器无法实现的方式与您的内容建立更切实的联系.

您可以通过从 WordPress 插件存储库安装 Gutenberg 插件,在计划的 WordPress 5.0 版本发布之前试用新编辑器。如果您还没有机会尝试,那么我强烈建议您这样做,以预览 WordPress 中未来的编辑体验!

在新编辑器中创建内容完全基于块。您添加到编辑器的每一段内容都是一个块。这包括所有您喜欢的元素,例如滑块、段落、按钮、列表、图像、推荐等。将块添加到编辑器后,您可以配置控制其外观和行为的设置。这些可以在块本身上或通过检查器面板(位于编辑器屏幕右侧)进行编辑。块设置有时会在两个位置重复,但这因块而异。

不过,几乎所有块都在检查器面板中提供了一个选项,可以手动添加一个或多个 CSS 类名,以允许进一步自定义块。如果您希望覆盖核心块或第三方块的样式,这可能非常有用。

为 WordPress 古腾堡块设计自定义样式:第 1 部分

虽然这工作正常,但扩展此行为并允许通过一组添加块自定义选项将是有益的预定义的样式选择。这正是块样式变化给我们带来的,我们将在本教程中专门关注它们。

先决条件

我们还将了解如何向您自己的块添加块样式变体以及如何扩展现有块,因此为了继续进行,您最好需要熟悉以下基础知识WordPress 插件开发以及如何创建块。

不过,不要惊慌 - 如果您需要速成课程,请查看我的关于创建自定义块的四部分教程。它涵盖了本教程中您需要了解的几乎所有内容 - 除了块样式变化之外,这是本特定教程的重点!

此外,如果您想跟随代码并亲自尝试一下,那么您将需要一个用于运行 WordPress 的本地开发服务器(例如 WAMP、MAMP 等)和一个代码编辑器。

背景

块样式变体 API 已在插件 v3.2 中引入到 Gutenberg 项目中,并允许您直接通过编辑器界面应用替代块样式。

要在块样式变化之前获得相同的结果,您必须在块检查器面板的其他 CSS 类文本字段中手动输入自定义 CSS 类,该文本字段位于高级 部分。

如果您对块样式变化的原始提案感兴趣,那么您可以阅读古腾堡官方存储库中拉取请求中的完整详细信息。

为块定义的任何样式变体都可以直接在块工具栏中访问。选择块,然后单击工具栏左上角的图标以显示块样式窗格。

为 WordPress 古腾堡块设计自定义样式:第 1 部分

还记得之前我说过可以直接在块中访问某些块设置检查小组?嗯,这正是块样式变化的情况!确保该块被选中并在检查器面板中查看。

为 WordPress 古腾堡块设计自定义样式:第 1 部分

这是为了方便,您可以从最适合您的位置选择样式变体。例如,在较大的屏幕上,您可以选择通过检查器面板更改块样式,因为它使您可以通过单击鼠标在样式之间进行交换。但是,在较小的设备上,您可能希望隐藏检查器面板,而只是通过块工具栏更改样式。

核心块支持

一些核心块目前支持块样式变化,包括:

  • 按钮
  • Pull Quote
  • Quote
  • 分隔符
  • Table

我确信随着此功能得到更广泛的采用,将来还会添加对其他核心块的支持。它非常灵活,我相信很多用户都会期望为大多数块选择预定义的样式选项。一旦您使用了块样式变体,就很容易明白为什么会出现这种情况。

当然,您也可以将块样式变体添加到您自己的块中。接下来我们将探讨具体的实现细节。

实现块样式变化

有两种方法可以实现自定义块样式变化。如果您有权访问块定义,那么您可以通过 style 属性直接在 registerBlockType() 函数内指定块样式变体。

例如,这就是按钮核心块样式属性定义的样子。

styles: [
	{ name: 'default', label: _x( 'Rounded', 'block style' ), isDefault: true },
	{ name: 'outline', label: __( 'Outline' ) },
	{ name: 'squared', label: _x( 'Squared', 'block style' ) },
],
登录后复制

在这里,注册了三个新的块样式变体。请注意,圆角样式也被设置为默认样式。

但是,如果您无法访问块源代码,那么您可以采取另一种方法。在 Gutenberg 3.4 中,添加了两个新函数来从块定义外部注册和取消注册块样式变体。

要注册自定义块样式变体,请使用 registerBlockStyle() 函数,如下所示:

wp.blocks.registerBlockStyle( 'core/button', {
    name: 'custom-button-style',
    label: 'My Button Style'
} );
登录后复制

这会向核心按钮块添加一个名为 custom-button-style 的新块样式变体。现在,当将按钮块插入编辑器时,您将看到可用的新块样式变体。

为 WordPress 古腾堡块设计自定义样式:第 1 部分

一旦选择,块样式变体就会添加 is-style-custom-将 Button-style CSS 类添加到块检查器面板中的其他 CSS 类文本字段。

为 WordPress 古腾堡块设计自定义样式:第 1 部分

这反过来会触发块输出的更新,并且该类将添加到 HTML 标记中。

为 WordPress 古腾堡块设计自定义样式:第 1 部分

您可能想知道在自己的代码中添加 registerBlockStyle() 函数的位置。别担心,我们将在下一篇文章中介绍完整的示例,您将能够下载最终的插件代码,以便您可以自己测试它。

一个小问题!

当您第一次插入支持块样式变体的块时,值得注意的是,直到您专门点击块样式变体之前,实际上并没有任何 CSS 类添加到块标记中,即使其中一个显示为默认选中。

亲自尝试一下。

将新的按钮块插入编辑器并打开块样式变化选项。您应该会看到默认选择的圆角选项。如果您在块检查器中打开高级部分,则尚未将 CSS 类添加到文本字段。因此,不会将 CSS 类插入到块标记中。在编辑器中查看按钮块输出的 HTML 以自行确认。

现在返回按钮块的块样式变体设置,然后单击默认选项(选定的选项)或任何其他块样式选项。您将立即看到 CSS 类已添加到其他 CSS 类文本字段和块​​包装标记中。选择块样式变体后,为自定义类定义的任何自定义 CSS 规则也将立即应用。

这种行为在第一次接触时有点令人困惑,因为直观上您会期望为默认选择的块样式变体自动添加 CSS 类。

结论

我们已经了解了块样式变体是什么以及为什么它们是块编辑体验的有用补充。我还演示了块样式变体的基本实现。

在下一篇文章中,我们将详细介绍如何注册您自己的块样式并通过插件以及子主题连接 CSS。

我们还将了解如何取消注册块样式以及如何设置在首次将块插入编辑器时默认选择哪种样式变体。

以上是为 WordPress 古腾堡块设计自定义样式:第 1 部分的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1664
14
CakePHP 教程
1421
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24
PHP和Python:比较两种流行的编程语言 PHP和Python:比较两种流行的编程语言 Apr 14, 2025 am 12:13 AM

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

说明PHP中的安全密码散列(例如,password_hash,password_verify)。为什么不使用MD5或SHA1? 说明PHP中的安全密码散列(例如,password_hash,password_verify)。为什么不使用MD5或SHA1? Apr 17, 2025 am 12:06 AM

在PHP中,应使用password_hash和password_verify函数实现安全的密码哈希处理,不应使用MD5或SHA1。1)password_hash生成包含盐值的哈希,增强安全性。2)password_verify验证密码,通过比较哈希值确保安全。3)MD5和SHA1易受攻击且缺乏盐值,不适合现代密码安全。

PHP行动:现实世界中的示例和应用程序 PHP行动:现实世界中的示例和应用程序 Apr 14, 2025 am 12:19 AM

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

什么是HTTP请求方法(获取,发布,放置,删除等),何时应该使用? 什么是HTTP请求方法(获取,发布,放置,删除等),何时应该使用? Apr 09, 2025 am 12:09 AM

HTTP请求方法包括GET、POST、PUT和DELETE,分别用于获取、提交、更新和删除资源。1.GET方法用于获取资源,适用于读取操作。2.POST方法用于提交数据,常用于创建新资源。3.PUT方法用于更新资源,适用于完整更新。4.DELETE方法用于删除资源,适用于删除操作。

PHP:网络开发的关键语言 PHP:网络开发的关键语言 Apr 13, 2025 am 12:08 AM

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

解释self ::,parent ::和static :: in php oop中的区别。 解释self ::,parent ::和static :: in php oop中的区别。 Apr 09, 2025 am 12:04 AM

在PHPOOP中,self::引用当前类,parent::引用父类,static::用于晚静态绑定。1.self::用于静态方法和常量调用,但不支持晚静态绑定。2.parent::用于子类调用父类方法,无法访问私有方法。3.static::支持晚静态绑定,适用于继承和多态,但可能影响代码可读性。

PHP如何安全地上载文件? PHP如何安全地上载文件? Apr 10, 2025 am 09:37 AM

PHP通过$\_FILES变量处理文件上传,确保安全性的方法包括:1.检查上传错误,2.验证文件类型和大小,3.防止文件覆盖,4.移动文件到永久存储位置。

PHP类型提示如何起作用,包括标量类型,返回类型,联合类型和无效类型? PHP类型提示如何起作用,包括标量类型,返回类型,联合类型和无效类型? Apr 17, 2025 am 12:25 AM

PHP类型提示提升代码质量和可读性。1)标量类型提示:自PHP7.0起,允许在函数参数中指定基本数据类型,如int、float等。2)返回类型提示:确保函数返回值类型的一致性。3)联合类型提示:自PHP8.0起,允许在函数参数或返回值中指定多个类型。4)可空类型提示:允许包含null值,处理可能返回空值的函数。

See all articles