修改过滤器的第二个参数

时间:2020-07-06 作者:Gogo

我有这个过滤器:

$post_arr = apply_filters(\'insert_product_post_data\', $post_arr, $data);
add_filter(\'insert_product_post_data\', \'my_filter\', 10, 2);
function my_filter($post_arr, $data) {
    //change $data here
    return $post_arr;
}
我需要更改$数据的值,有什么办法吗?

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

不,如果不更改原始代码,这是不可能的。过滤器处理第一个参数,其他参数为上下文提供。

您还需要让作者为数据变量添加过滤器、派生插件或使用竞争对手。

唯一的例外是$data 是一个object 不是一个array 您想要修改它。但是,它不能被替换,也不能使用数组或任何其他数据类型进行替换。

相关推荐

使用Add_Filters()、Apply_Filter()、Add_action()和do_action()扩展插件

假设我正在开发一个与预订相关的插件。下次我想在那个插件上添加一个附加组件来支付。然后,我为贝宝支付添加了另一个附加组件。假设下面是html中的支付网关UI界面<div class=\"payments-options\"> <div class=\"bank-payment\"></div> <div class=\"cash-on-delivery\"></div> <!--- Here i