失败与学习:我在一周内构建 4 个块插件的经验

我上周构建了四个块插件。 这不是我打算做的事情。 我没有一天醒来并宣称:“我想我会在接下来的几天内构建一套自定义块类型。” 就这样发生了。

我构建的第一个插件是为了解决一个 古腾堡的旧票 没有看到任何牵引力。 也许其他人对这个想法不感兴趣,或者它从未在成千上万张其他门票的海洋中越过他们的道路。 为什么不自己建造呢? 所以我做了。 花了几个小时,但大部分时间是根据我的喜好和阅读文档重新配置@wordpress/scripts 构建脚本。

有了那个插件,我开始寻找新的问题来解决。 我已经注意到的一个是 缺少评论标题栏 有必要在 WordPress 6.0 登陆之前将即将到来的评论查询循环块引入功能奇偶校验。 所以,我为它构建了一个粗略的插件。

failure-and-learning-my-experience-building-4-block-plugins-in-a-week 失败和学习:我在一周内构建 4 个块插件的经验评论 站点编辑器中的标题栏。

幸运的是,其他人接受了这个最初的想法并采用了它,构建了比我第一次尝试更灵活的东西。 现在,有一个 古腾堡的新街区.

我还有其他几个想抓挠的痒,在一个充满雨水的星期天,我无事可做。 也就是说,WordPress 不包含 wp_list_users() 和 wp_list_authors() 模板标签的等效块。 这似乎是一个疏忽,所以我处理了这些的早期版本。

我将很快将这些免费放在官方 WordPress 插件目录中,供对它们感兴趣的人使用。 我只能希望他们将来会帮助别人。

这篇文章是关于分享我的经历,旅程,而不是这一切的结果。

最近,有人问我是否可以作为开发人员在这个大量使用 JavaScript 的块世界中进行操作。 自从我在 WP Tavern 担任写作职位并为用户开发现实世界的解决方案以来已经两年多了。 那时我才开始在块编辑器中使用 JavaScript。

从那以后,我开始涉足区块主题,甚至在 WordPress.org 上发布了一个。 我在业余时间构建了一些基于 PHP 的项目以供娱乐。 去年夏天我什至创建了我的第一个自定义块插件 与读者分享我的经验. 不久之后,我建立了第二个。

我将近一年前的那团燃烧的火焰很快就熄灭了。 这与仍处于起步阶段的块主题开发状态有关,而不是任何事情。 我对它的潜力感到兴奋,但考虑到所有这些都是一个有趣的副项目,持续的破损超出了我的处理时间。

在本质上,我仍然是一个程序员,一个问题解决者。 于是,我重新开始。

第一站是 JavaScript 构建设置文档 用于构建块。 这次我打算学习“WordPress 方式”。 在大多数情况下,我坚持这样做。

我唯一遇到的问题是设置脚本将我的命名空间 x3p0 插入到函数名称中的 x_3_p_0 中。 那是一个要清理的烂摊子。 但是,我不需要在其他块插件中完成该过程。 我只想在第一次尝试时获得初学者的体验。

对于积木, @wordpress/脚本 这就是所有必要的。 我对其进行了修补,添加了几个自定义命令,并修改了输入/输出文件夹。 但是,它拥有快速启动和运行所需的一切。

我跳过了 Hola,蒙多! (你好,世界!)设置教程的一部分。 每当我着手构建任何东西时,我都计划一头扎进更复杂的东西。 但是,了解基础知识以了解事情的运作方式永远不会受到伤害。

我的编程风格是建立在失败之上的。 我冒险提出一个想法,惨遭失败,并继续从错误中吸取教训。 不久之后,我有了一个自定义块类型,它显示了一个指向嵌套评论父级的链接:

failure-and-learning-my-experience-building-4-block-plugins-in-a-week-1 失败和学习:我在一周内构建 4 个块插件的经验评论父链接块。

虽然这是成功的,但我了解到其他一些内置的编辑器组件可能会使它变得更好。

第一个区块让我体验了 WordPress 的现代开发。 这是一个构建起来相对简单的插件,但很容易看出如何将其扩展为更复杂的功能。

在过去的几年里,组件系统已经发展成为一个强大而灵活的工具集,供开发人员使用。 加, 组件级文档 在这一点上是全面的,尤其是在将它与核心代码中的用法配对时。

随着我继续构建新块,我开始接受更复杂的概念。 我需要学习的一件事是如何与核心数据层进行交互。 当我进入我的第三和第四块类型时,我需要查询用户并列出它们:

failure-and-learning-my-experience-building-4-block-plugins-in-a-week-2 失败和学习:我在一周内构建 4 个块插件的经验通过作者块列出用户。

虽然有一个 “基础”教程 在处理核心数据方面, 参考指南 有些地方参差不齐。 有些部分甚至似乎完全丢失了。 高级向导在哪里? 我找不到任何东西,当你超越几个简单的表单字段时,用数据“做东西”是插件开发的核心。

我花了一些时间使用经过验证的真正的 console.log() 来弄清楚事情并仔​​细阅读核心代码。 最终,我推动并建立了几个工作项目。

与一年前相比,这次我的体验是否有所改善? 毫无疑问,它做到了。

最重要的是,我要感谢 Gutenberg 项目的所有贡献者。 这位大部分时间都在 PHP 世界度过的开发人员欢迎使用构建工具和一系列预构建组件。 我总是喜欢能够拿起一个工具集并立即开始构建它。 我敢肯定,此时我只是瞥见了一些可能的事情,但我期待尝试新事物。 随着我变得越来越舒服,也许我会写一些我认为缺少的高级教程。

类别: 观点, 插件

来源

相关文章