wordpress中add_action和add_filter

Posted 叫我大头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wordpress中add_action和add_filter相关的知识,希望对你有一定的参考价值。

add_action( string $tag, callable $function_to_add, int $priority = 10,int $accepted_args = 1 )

官网是这么说的:在一个特定的动作上挂钩一个函数。

那么就有对应的执行这个特定动作的函数:

do_action( string $tag,  $arg = ‘‘ )

在我理解他有这麽一个好处,就是把多个不同运用的函数一起执行,进行输出。

add_filter( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 )

add_filter跟add_action类似,在一个特定的动作上挂钩一个方法或函数,主要的区别就是有返回值。通过官网的例子可以看出:

// Filter call.
$value = apply_filters( ‘hook‘, $value, $arg2, $arg3 );

// Accepting zero/one arguments.
function example_callback() {
    ...
    return ‘some value‘;
}
add_filter( ‘hook‘, ‘example_callback‘ ); // Where $priority is default 10, $accepted_args is default 1.

// Accepting two arguments (three possible).
function example_callback( $value, $arg2 ) {
    ...
    return $maybe_modified_value;
}
add_filter( ‘hook‘, ‘example_callback‘, 10, 2 ); // Where $priority is 10, $accepted_args is 2.

添加静态方法:

add_filter( ‘media_upload_newtab‘, array( ‘My_Class‘, ‘media_upload_callback‘ ) );

添加函数:

add_filter( ‘media_upload_newtab‘, array( $this, ‘media_upload_callback‘ ) );

传递的第二个参数也可以是一个闭包:

add_filter( ‘the_title‘, function( $title ) { return ‘<strong>‘ . $title . ‘</strong>‘; } );

与此对应的有apply_filter调用钩子上的 函数或方法

apply_filters( string $tag, mixed $value )

add_action与add_filter 主要的区别就是一个有返回值一个没有返回值。

apply_filter和do_action都是执行钩子上挂载的函数集。

以上是关于wordpress中add_action和add_filter的主要内容,如果未能解决你的问题,请参考以下文章

我在 wordpress 插件模型中添加 add_action 但它显示错误意外标识符

不能复制我的wordpress小部件

Wordpress REST Api:add_action('rest_api_init', callback) 不调用回调

WordPress 钩子中的匿名函数

php WordPress插件设置页面的基础,使用设置API #add_options_page #add_action #admin_init #register_setting #add_sett

php WordPress插件设置页面的基础,使用设置API #add_options_page #add_action #admin_init #register_setting #add_sett