WordPress 插件开发入门指南:使用 WordPress 插件样板
WordPress 插件开发的学习曲线较低,并没有构建插件的唯一方法。插件可以像 Hello Dolly 一样简单,只是一个单文件;也可以根据各种需求和功能构建得非常复杂。WordPress 插件样板旨在提供一个标准化、高质量的基础,帮助您构建下一个优秀的插件。在本系列的第一部分中,我们将深入探讨该样板,包括文件和文件夹的结构以及样板的代码组织。
关键要点
背景
WordPress 插件样板最初是由 Tom McFarlin 发起的,旨在提供一种标准化的面向对象方法来构建 WordPress 插件。由于样板构建在插件 API 之上,并遵循 WordPress 推荐的编码标准和文档标准,因此您可以确信自己处于安全可靠的环境中。样板最近更新到 3.0.0 版本,在代码组织以及插件内部关注点的进一步分离方面带来了重大改进。如果您已经熟悉使用旧版样板 (v2.6.2) 开发插件,则可能需要一些时间来重新学习最新版本中的新增内容,其中包括新的文件夹结构。此样板不再由 Tom McFarlin 本人维护(在撰写本文时),他已经将接力棒传给了 Devin Vinson。开发仍在按计划继续进行,因此如果您有任何问题,请随时在 GitHub 仓库中报告。我们也欢迎您的贡献。
获取样板副本
获取 WordPress 插件样板副本最简单的方法是克隆 git 仓库本身。
<code>git clone https://github.com/DevinVinson/WordPress-Plugin-Boilerplate.git</code>
或者您可以始终从 GitHub 仓库下载 zip 文件。由于 3.0.0 版本已发布,因此不能简单地将插件直接复制到您的 wp-content/plugins 目录中。这是因为插件的实际源代码不包含在根目录中,而实际上位于名为 trunk 的子目录中。现在不用担心这个问题,我们稍后将在本文中讨论新的文件夹结构。README.md 文件中详细介绍了如何正确安装样板的完整说明。简而言之,您可以:
完成此操作后,您现在应该在管理面板的插件列表中找到一个名为 WordPress Plugin Boilerplate 的插件,假设您没有对样板本身进行任何修改。只需激活插件即可开始使用!
使用在线生成器自定义插件
激活后,您将拥有一个基本上不执行任何操作的“普通”插件——至少目前是这样。您还需要对整个样板的代码库运行搜索和替换操作,此过程可能非常繁琐且耗时。幸运的是,Enrique Chavez 创建了一个非官方生成器,可以自动化此过程。只需访问 https://www.php.cn/link/6340831392e9cd8af9598274f4b3c5c0 并填写页面底部的表单即可生成个性化的 WordPress 插件样板副本。
文件夹结构
让我们更仔细地看看与旧版本相比,WordPress 插件样板 3.0.0 版本是如何组织的。如前所述,实际的插件代码包含在一个名为 trunk 的子目录中,而不是根目录中。这是为了遵循 WordPress 官方插件存储库中使用的标准,该存储库包含三个主要目录:assets、branches 和 trunk。样板已经提供了其中的两个:assets 和 trunk。以下是样板中包含的完整目录和文件(在撰写本文时):
<code>git clone https://github.com/DevinVinson/WordPress-Plugin-Boilerplate.git</code>
以下是每个文件和文件夹的功能简要说明:
.gitignore
:为大多数不应存在于 git 存储库中的内容提供合理的默认 .gitignore
。CHANGELOG.md
:样板更改的标准变更日志,包含更改日期。README.md
:一个有用的入门指南,其中列出了安装说明,以及其他一些部分,例如工具推荐和鸣谢。assets
:此目录包含在您决定将插件发布到 WordPress 插件存储库时需要提供的推荐资源。此目录中包含的所有图像均为发布的推荐分辨率。trunk
:这是您将要开发的实际插件。有一些文件夹将代码库分为管理和面向公众的功能。我们将详细介绍每个子目录的含义。admin
:admin
目录中包含三个目录,即 css
、js
和 partials
。顾名思义,所有面向管理的功能都应放在此处。默认情况下,plugin-name-admin.js
和 plugin-name-admin.css
将添加到您的 wp-admin 中。class-plugin-name-admin.php
将提供通用功能,您可以在其中定义特定于管理的挂钩。public
:此目录与 admin
目录提供的功能非常相似,唯一的区别是 public
目录应用于存储所有面向公众的功能代码库。languages
:一个起始 .pot
文件,您可以在其中为插件提供翻译功能。includes
:这可能是几乎所有神奇之处发生的地方。默认情况下包含五个起始类,我们将在下一节中讨论。LICENSE.txt
:默认情况下包含 GPL v2 许可证的副本。README.txt
:插件 README 文件的起点。此文件涵盖了您可以进一步填写以在 WordPress 插件存储库中提供良好的插件页面的所有部分。plugin-name.php
:插件的入口点。在此处,包含一个通用的插件文件头,您可以根据自己的喜好进行修改。如果您需要在插件激活和/或停用时包含某种功能,则还会在此文件中注册 register_activation_hook
和 register_deactivation_hook
。包含的类
如前所述,trunk/includes
目录中提供了五个默认类。让我们看看每个类都做什么:
class-plugin-name-activator.php
:此类在插件激活期间实例化。它只有一个静态方法 activate()
,该方法注册到 register_activation_hook
。每当您需要在插件激活时执行某些操作(例如创建自定义表或保存默认选项)时,请使用此类。class-plugin-name-deactivator.php
:class-plugin-name-deactivator.php
的对应类。它也只有一个静态方法 deactivate()
,可用于在插件停用期间运行任何功能。class-plugin-name-i18n.php
:插件 i18n 功能的起点。它有一个属性 $domain
,用于存储插件文本域。可以使用公共方法 set_domain()
设置此属性。最后,每当加载插件时,都会调用此类中的 load_plugin_textdomain()
方法。class-plugin-name-loader.php
:样板中可能最重要的类。它包含两个属性 $actions
和 $filters
,所有在插件中注册的挂钩都将存储在此处。它提供两个简单的包装函数 add_action()
和 add_filter()
,用于将操作或过滤器添加到 $actions
和 $filters
属性中。这不要与 WordPress 默认的 add_action()
和 add_filter()
函数混淆,因为此类实际上并没有直接注册它们。所有挂钩都只会在另一个名为 run()
的方法期间注册。class-plugin-name.php
:将所有部分粘合在一起的类。它包含有关插件的重要信息,例如插件名称和版本。此外,它将使用 load_dependencies()
方法加载依赖项,这将包含以上四个类,并且将使用 set_locale()
方法设置插件文本域。之前注册的所有管理和公共挂钩也可以在此处定义。此类还提供简单的 get 方法,例如 get_plugin_name()
用于返回插件名称,get_version()
用于返回当前插件版本,以及 get_loader()
用于保留 class-plugin-name-loader.php
的实例。结论
简而言之,WordPress 插件样板为插件开发人员提供了一个绝佳的起点。它遵循推荐的 WordPress 编码标准以及 WordPress 文档标准,因此您知道自己从一开始就走在了正确的道路上。此外,由于样板已经提供了您所需的大部分内容,因此发布到 WordPress 插件存储库变得更加容易。一旦我们熟悉了代码组织和文件夹结构,我们将在本系列的第二部分中探讨如何使用 WordPress 插件样板开发实际插件。
以上是使用WordPress插件样板加快开发的详细内容。更多信息请关注PHP中文网其他相关文章!