Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 自定义插件中的覆盖函数_Php_Wordpress - Fatal编程技术网

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中单一模式为杨树的原因之一。