经常会出现需要取消(不运行)插件连接的脚本的情况。编辑插件代码是不好的,因为更新时编辑会脱落。
鉴于许多现代插件使用面向对象的代码,我想知道如何覆盖插件设置的任何过滤器或操作add_filter()。add_action()
通常如何在不影响插件代码的情况下进行此类更改?
经常会出现需要取消(不运行)插件连接的脚本的情况。编辑插件代码是不好的,因为更新时编辑会脱落。
鉴于许多现代插件使用面向对象的代码,我想知道如何覆盖插件设置的任何过滤器或操作add_filter()。add_action()
通常如何在不影响插件代码的情况下进行此类更改?
功能风格
如果插件是用函数式编写的,那就很简单了。我们看看插件如何运行脚本或添加过滤器。例如:
并在functions.php中取消它们
注意第三个参数——优先级。它必须与添加挂钩时指定的优先级完全匹配。
面向对象的风格
然而,问题是大多数现代插件都使用面向对象的代码,添加钩子时的第二个参数已经是一个指定对象及其函数的数组:
如何到达它
$this?添加到主题的以下功能
functions.php可以作为解决方案:因为 stock 和 filters 本质上是一样的,并且存储在同一个全局数组
$wp_filter中,所以代码是通用的。删除共享的用法:
用于删除过滤器: