如何覆盖插件的Add_Filter?

时间:2017-11-15 作者:Suman

如何覆盖插件的add\\u过滤器?

like

add_filter( \'wcml_switch_currency_exception\', \'cart_switching_currency\', 10, 4 );
我想用我的自定义函数代替“cart\\u switching\\u currency”函数。

2 个回复
SO网友:Drupalizeme

过滤器带有一个优先级参数,默认值为10,因此要覆盖函数,需要增加优先级:

add_filter( \'wcml_switch_currency_exception\', \'cart_switching_currency\', 99, 4 );
add\\u筛选器(字符串$标记,可调用$function\\u to\\u add,int$priority=10,int$accepted\\u args=1)

更多信息请访问add_filter

更新时间:

如果删除筛选器不起作用,可以尝试以下方法:

function remove_cart_switching_currency_filter(){
    remove_filter(\'wcml_switch_currency_exception\', \'cart_switching_currency\', 10, 4);
}
add_action( \'after_setup_theme\', \'remove_cart_switching_currency_filter\' );

Important is that the priorities must match.

有关的更多信息after_setup_theme

SO网友:Johansson

您可以使用remove_filter 移除过滤器,然后将您自己的过滤器添加到该挂钩。例如:

remove_filter( \'wcml_switch_currency_exception\', \'cart_switching_currency\', 10 );

add_filter( \'wcml_switch_currency_exception\', \'my_function\', 10, 4 );

结束

相关推荐

当返回值为空时,Apply_Filters为什么要返回非空字符串?

因为这个把我的键盘弄坏了。进行了正确的安装,将数据库上载到新的MySQL,并一直在正确使用子主题。但有件事困扰着我,我想不出来。在我的新安装上(ver2.whowhatwhy.com) 我故意将一些小部件留空。我想,当阅读default-widgets.php wp中的文件包括在该小部件上不会显示标题元素。相反,显示标题小部件是因为,出于某种原因,传递的值apply_filters 是一个空格,而不是空白值$instance[\'title\'] 为空。$title = apply_filters( \'