engagedc / wp-handler
WordPress 主题和插件的面向对象模板。
Requires
- php: ^7.0
- dashifen/exception: 1.1.*
This package is not auto-updated.
Last update: 2024-09-29 05:44:28 UTC
README
此对象是一种方法,用于隐藏将处理器附加到 WordPress 动作和过滤器钩子以保护对象内函数的繁琐细节。没有它,只有对象的可公开方法才能被 WordPress 核心生态系统访问,但有了它,我们也可以使用受保护的方法来帮助避免以不适当的方式调用我们的对象的方法。
用法
简单地扩展 AbstractHandler 对象并实现 initialize() 方法。在该方法中,您应该使用对象的 addAction() 和 addFilter() 方法将其他方法附加到 WordPress 动作和过滤器。例如
public function initialize(): void { $this->addAction("admin_enqueue_scripts", "addAdminScripts"); } protected function addAdminScripts(): void { /* do important things here */ }
addAction() 和 addFilter() 方法与 WordPress 核心函数 add_action() 和 add_filter() 的参数类似:钩子名称、回调方法名称、调用优先级以及要发送给回调的参数数量。与 WP 核心函数一样,后两个参数分别默认为 10 和 1。
为什么?
简单来说,只有公开方法的对象有助于避免名称冲突,但并不能避免将所有代码都放在全局范围内,使其可以从任何地方访问。AbstractHandler 对象确保您的受保护方法只能在您提供的优先级级别上,针对它们打算调用的动作/过滤器钩子调用。任何其他尝试使用它们的行为都将导致 PHP 错误(因为方法是受保护的)或抛出 HandlerException。
其他对象
在 Pages 文件夹中还有一些辅助对象,以及在名为 Traits 的文件夹中的一些特质。这些对象之所以存在,是因为它们经常被处理器用于显示模板文件。理论上,它们可以在自己的存储库中,但由于这些对象经常一起使用,我们可能决定暂时将它们放在同一个存储库中。