Php 自定义插件中的覆盖函数
我正在使用一个插件执行以下操作:Php 自定义插件中的覆盖函数,php,wordpress,Php,Wordpress,我正在使用一个插件执行以下操作: add_filter( 'pre_comment_approved', array( $this, 'pre_save_review' ), 10, 2 ); 我已经写了一个插件来对我的网站做一些调整。主要是RESTAPI定制 我想覆盖、颠覆、忽略、删除那个过滤器。现在,我只需在pre\u save\u review函数的第一行返回ing,就可以让它“正常工作” 我试过: remove_action( 'pre_comment_approved', 'pre_
add_filter( 'pre_comment_approved', array( $this, 'pre_save_review' ), 10, 2 );
我已经写了一个插件来对我的网站做一些调整。主要是RESTAPI定制
我想覆盖、颠覆、忽略、删除那个过滤器。现在,我只需在pre\u save\u review
函数的第一行返回ing,就可以让它“正常工作”
我试过:
remove_action( 'pre_comment_approved', 'pre_save_review');
。。。但我想知道是否有一些名称空间的问题。我对PHP了解不多,所以我不知道如何引用其他文件/插件中的类,我想这就是问题所在
谢谢 您需要为此使用remove\u filter
功能
请参见此处文档中的示例:
如果筛选器是从类中添加的,例如
插件,删除它将需要访问类变量
因此,不妨尝试一下下面的方法
global $this;
remove_filter( 'pre_comment_approved', array( $this, 'pre_save_review' ) );
您需要为此使用remove\u filter
功能
请参见此处文档中的示例:
如果筛选器是从类中添加的,例如
插件,删除它将需要访问类变量
因此,不妨尝试一下下面的方法
global $this;
remove_filter( 'pre_comment_approved', array( $this, 'pre_save_review' ) );
您可以使用wordpress函数“删除所有过滤器”删除所有过滤器
该参数还有第二个参数用于传递优先级编号,因为该参数与优先级10一起添加,它将是:
remove_all_filters('pre_comment_approved', 10);
参考您可以使用wordpress功能“删除所有过滤器”删除所有过滤器
该参数还有第二个参数用于传递优先级编号,因为该参数与优先级10一起添加,它将是:
remove_all_filters('pre_comment_approved', 10);
Reference我看不到其他答案提供有关此操作的详细信息,但是,您不能仅删除此操作的原因是,您使用对象注册了此操作,而要取消注册,则需要相同的对象。添加操作时为$this
的对象在删除操作时也需要使用。在这样的对象中添加操作时,需要保留注册对象,以备以后需要。这是在WP中使用单例模式的原因之一。我看不到其他答案提供有关这方面的详细信息。但是,您不能仅删除该操作的原因是,您向一个对象注册了它,而要取消注册它,您需要同一个对象。添加操作时为$this
的对象在删除操作时也需要使用。在这样的对象中添加操作时,需要保留注册对象,以备以后需要。这是WP中单一模式为杨树的原因之一。