we码更多 / wordpress-early-hook
一个小型库,用于在WordPress加载前安全地添加WordPress钩子。
Requires
- php: >=7.1 < 8.4
Requires (Dev)
- inpsyde/php-coding-standards: ^1.0.0
- phpunit/phpunit: ^7.5.20 || ^9.6.4
- roave/security-advisories: dev-latest
- roots/wordpress-no-content: >=6.1.1
- vimeo/psalm: ^4.30.0
README
一个小型库,用于在WordPress加载前安全地添加WordPress钩子。
是什么
此包提供两个函数
WeCodeMore\earlyAddAction()
WeCodeMore\earlyAddFilter()
具有与WP的add_action
和add_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])。嗯,我可能会忽略牢骚。