会员登录 您是新人?

   

QQ登录

会员注册

       

WP管理员之家

如何从基于类的WordPress插件中删除一个钩子

我将向您展示如何从另一个第三方WordPress插件中删除操作或过滤器挂钩,即使该插件是基于类和面向对象的。

您是否尝试修改第三方插件的功能而不实际编辑其插件的代码(这会导致在下次更新时丢失您的自定义)?有麻烦,因为该插件是面向对象或基于类的?我已多次遇到这种情况,最后找到了一个非常好的修复方法。

在这篇文章中,我将向您展示如何从另一个插件中删除动作或过滤器钩子,即使该插件是基于类的。

基本删除操作和过滤器

你可能已经知道,你可以删除某人的ADD_ACTION    使用remove_action    ,你可以删除某人的add_filter    使用remove_filter   。

所以,在正常情况下,它非常简单。在某人的插件中,他们有类似......

...而你只是用...删除它们

基于类的插件有点复杂

使用类的插件看起来像这样......

请注意,add_action不仅具有函数回调的简单字符串,而是具有带有$ this的数组,然后是该函数回调字符串。这允许插件开发人员使用简单的函数名称而不必担心与其他插件冲突,因为它们仅限于该类的范围。

那么,你如何删除它?

如何从基于类的插件中删除挂钩

如果您可以挂钩到该插件,那么您应该能够使用此方法来访问类对象实例以删除挂钩。

如何从基于类的插件外部删除钩子

如果你无法挂钩基于类的插件,那么尝试在回调数组的第一部分使用类名作为字符串,就像这样...

如果这些方法都不起作用,请使用这些函数

有时,它不会起作用。但是,这里有一些很好的辅助功能。

在代码中提供这些功能,您可以像这样使用它们......

看了上面的内容您还有疑问吗?

希望这篇文章解决了你的问题。如果您有任何疑问,请在下面的评论中@我。

 

在线留言

您的昵称 *

您的邮箱 *

您的网站

评论内容

  1. 科比 2019-08-09 15:30:48 沙发

    这个文章解决了我的问题,谢谢

  2. 来看的 2019-08-09 15:28:38 板凳

    来看的

客服微信