Wordpress 我们可以组合使用add_action()和apply_filters()吗?

Wordpress 我们可以组合使用add_action()和apply_filters()吗?,wordpress,Wordpress,在Wordpress中检查某个自定义插件的代码时,我遇到了如下代码: in x.php :- add_action( 'woocommerce_settings_api_form_fields_cod', array( $this, 'extend_cod' ) ); in y.php :- public function get_form_fields() { return apply_filters( 'woocommerce_settings_api_form_fields_'

在Wordpress中检查某个自定义插件的代码时,我遇到了如下代码:

in x.php :-
add_action( 'woocommerce_settings_api_form_fields_cod', array( $this, 'extend_cod' ) );

in y.php :-
public function get_form_fields() 
{
    return apply_filters( 'woocommerce_settings_api_form_fields_' . $this->id, array_map( array( $this, 'set_defaults' ), $this->form_fields ) );
}
理想情况下,我们结合使用add_action()/do_action()。但在这里,他们使用了应用过滤器()而不是执行操作()。

这样使用合适吗?
使用这种方式有什么具体的原因/好处吗?

虽然从技术上讲它执行起来没有问题,但是WordPress添加了所有的钩子助手功能,以显示内容更改(过滤器钩子)和逻辑更改(动作钩子)的差异

如果密切注意第404行,函数
add\u filter
在函数
add\u action
中被调用,即使没有更改传递的参数,因此基本上这些都只是为了惯例,并告诉其他人您的意图

如果它是一个过滤器钩子,就有结构上的改变;如果它是动作钩子,就有一些逻辑过程,仅此而已

请阅读这篇有趣的文章,了解更多


你想归档什么?我检查了一些现有插件的代码,看到了这种类型的实现。