apply_filters()
apply_filters( string $tag, mixed $value ) 调用已添加到筛选器挂钩的…
apply_filters( string $tag, mixed $value )
调用已添加到筛选器挂钩的回调函数。
Calls the callback functions that have been added to a filter hook.
目录锚点:#说明#参数#返回#源码#笔记
说明(Description)
附加到筛选器挂钩的回调函数通过调用此函数来调用。这个函数可以用来创建一个新的过滤器钩子,只需使用使用$tag参数指定的新钩子的名称调用这个函数。
该函数还允许将多个附加参数传递给钩子。
示例用法:
//过滤器回调函数。
函数示例u回调($string,$arg1,$arg2){
//(可能)修改$string。
返回$string;
}
添加_filter(“example_filter”,“example_callback”,10,3);
/*
*通过调用“example_callback()”函数应用筛选器
*上面的“exampleu filter”就有这个功能。
*
*-“example_filter”是过滤器挂钩。
*-“filter me”是正在筛选的值。
*-$arg1和$arg2是传递给回调的附加参数。
$value=apply_filters(’example_filter’,’filter me’,$arg1,$arg2);
参数(Parameters)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
$tag | (string) | 必需 | 筛选器挂钩的名称。 |
$value | (mixed) | 必需 | 要筛选的值。 |
$args | (mixed) | 必需 | 传递给回调函数的其他参数。 |
返回(Return)
(mixed)应用所有挂接函数后的过滤值。
源码(Source)
/** * Call the functions added to a filter hook. * * The callback functions attached to filter hook $tag are invoked by calling * this function. This function can be used to create a new filter hook by * simply calling this function with the name of the new hook specified using * the $tag parameter. * * The function allows for additional arguments to be added and passed to hooks. * * // Our filter callback function * function example_callback( $string, $arg1, $arg2 ) { * // (maybe) modify $string * return $string; * } * add_filter( 'example_filter', 'example_callback', 10, 3 ); * * /* * * Apply the filters by calling the 'example_callback' function we * * "hooked" to 'example_filter' using the add_filter() function above. * * - 'example_filter' is the filter hook $tag * * - 'filter me' is the value being filtered * * - $arg1 and $arg2 are the additional arguments passed to the callback. * $value = apply_filters( 'example_filter', 'filter me', $arg1, $arg2 ); * * @since 0.71 * * @global array $wp_filter Stores all of the filters. * @global array $merged_filters Merges the filter hooks using this function. * @global array $wp_current_filter Stores the list of current filters with the current one last. * * @param string $tag The name of the filter hook. * @param mixed $value The value on which the filters hooked to `$tag` are applied on. * @param mixed $var Additional variables passed to the functions hooked to `$tag`. * @return mixed The filtered value after all hooked functions are applied to it. */ function apply_filters( $tag, $value ) { global $wp_filter, $merged_filters, $wp_current_filter; $args = array(); // Do 'all' actions first. if ( isset($wp_filter['all']) ) { $wp_current_filter[] = $tag; $args = func_get_args(); _wp_call_all_hook($args); } if ( !isset($wp_filter[$tag]) ) { if ( isset($wp_filter['all']) ) array_pop($wp_current_filter); return $value; } if ( !isset($wp_filter['all']) ) $wp_current_filter[] = $tag; // Sort. if ( !isset( $merged_filters[ $tag ] ) ) { ksort($wp_filter[$tag]); $merged_filters[ $tag ] = true; } reset( $wp_filter[ $tag ] ); if ( empty($args) ) $args = func_get_args(); do { foreach( (array) current($wp_filter[$tag]) as $the_ ) if ( !is_null($the_['function']) ){ $args[1] = $value; $value = call_user_func_array($the_['function'], array_slice($args, 1, (int) $the_['accepted_args'])); } } while ( next($wp_filter[$tag]) !== false ); array_pop( $wp_current_filter ); return $value; }
更新版本 | 源码位置 | 使用 | 被使用 |
---|---|---|---|
0.71 | wp-includes/plugin.php:181 | 1123 | 1 function |
笔记(Notes)
滤波后回波
一个很容易忽略的基本参数是指定参数的数量。大多数过滤器只有一个参数,因此人们从add_filter中删除该参数。
从读取此函数的定义和描述中不明显的是,如果在代码中从未调用/执行add_filter(’filter_name’,’filter_function’),则默认情况下使用apply_filter(’filter_name’,$value)将返回$value的值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!