we码更多/wordpress-early-hook

一个小型库,用于在WordPress加载前安全地添加WordPress钩子。

1.2.0 2024-01-08 14:44 UTC

This package is auto-updated.

Last update: 2024-09-08 16:14:28 UTC


README

一个小型库,用于在WordPress加载前安全地添加WordPress钩子。

PHP Quality Assurance

是什么

此包提供两个函数

  • WeCodeMore\earlyAddAction()
  • WeCodeMore\earlyAddFilter()

具有与WP的add_actionadd_filter相同的签名,但它们通过Composer自动加载加载,并且可以在WordPress实际加载之前添加钩子。

为什么

当我们使用Composer支持编写WordPress代码时,我们可能会倾向于使用Composer自动加载文件功能来添加WordPress操作和过滤器。

当我们所编写的代码是WP Starter项目的一部分,并且该项目运行良好时,因为WP Starter在加载Composer自动加载之前加载了WP插件API。

但如果我们旨在将代码作为“独立”版本发布,我们不知道它将在哪里使用,因此当需要Composer自动加载文件时,WP插件API可能尚未加载,因此调用add_action/add_filter将导致致命错误。

如何

此包的两个函数首先检查实际WP函数是否可用,如果可用,则使用它们。

如果WP函数不可用,它将检查ABSPATH常量是否已定义。如果是,它使用它来加载定义钩子API的wp-includes/plugin.php文件。从WordPress 4.7开始,该文件独立于WordPress的其他部分,可以在WP加载之前加载。在文件加载后,此包的函数可以调用WP函数。

如果在甚至没有定义ABSPATH常量的情况下,此包的函数将回退到填充$wp_filter全局变量,WordPress将在加载时使用WP_Hook::build_preinitialized_hooks对其进行“协调”。

系统要求

  • PHP 7.1+
  • WordPress 4.7+(仅针对PHP 8.1+进行了测试5.9+)

安装

通过Composer,包名为wecodemore/wordpress-early-hook

许可证

MIT。请参阅LICENSE文件。

谁在背后

我是Giuseppe,自2005年以来一直在处理PHP。有关问题、牢骚或聊天,请在Mastodon上向我发送ping(@[email protected])。嗯,我可能会忽略牢骚。