WordPress函数文档apply_filters()
创建一个过滤器钩子,调用所有回调方法 描述 译文 调用添加到过滤器hook上的函数。在Plugin API上查…
创建一个过滤器钩子,调用所有回调方法
描述
译文
调用添加到过滤器hook上的函数。在Plugin API上查看过滤器hook列表。
通过调用该函数,可以调用附着在过滤器hook $tag上的回调函数。用$tag参数所指定的新hook的名称调用该函数,可创建一个新的过滤器hook。
原文
Call the functions added to a filter hook. See the Plugin API for a list of filter hooks.
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.
用法
<?php apply_filters( $tag, $value, $var ... ); ?>
参数
$tag
(string) (必填) The name of the filter hook.
默认值: None
$value
(mixed) (必填) The value which can be modified by filters hooked to $tag
默认值: None
$var
(mixed) (可选) One or more additional variables passed to the filter functions. You can use this parameter in your function but it will not be returned. This parameter is available since Version 1.5.1.
默认值: None
示例
Echo after Filtering
1
2
3
4
|
/* ———————————-
* wordpress函数 kim收集
* ———————————- */
echo apply_filters( $tag, $value );
|
Get Filtered
1
2
3
4
|
/* ———————————-
* wordpress函数 kim收集
* ———————————- */
$myvar = apply_filters( $tag, $value );
|
Additional Filter Arguments
1
2
3
4
5
6
|
/* ———————————-
* wordpress函数 kim收集
* ———————————- */
$myvar = apply_filters( $tag, $value, $param, $otherparam );
For example:
$myvar = apply_filters( ‘example_filter’, ‘filter me’, ‘arg1’, ‘arg2 ‘);
|
With the_title filter
1
2
3
4
|
/* ———————————-
* wordpress函数 kim收集
* ———————————- */
$my_custom_title = apply_filters(‘the_title’, ‘ My Custom Title ™ ‘);
|
$my_custom_title will now contain ‘My Custom Title ™’, since the_title filter applies wptexturize() and trim(), among others.
历史
- 添加于 版本: 0.71
源文件
apply_filters() 函数的代码位于 wp-includes/plugin.php
.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
/* ———————————-
* wordpress函数 kim收集
* ———————————- */
/**
* 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;
}
|
相关
Filters:
has_filter(),
add_filter(),
apply_filters(),
current_filter(),
merge_filters(),
remove_filter(),
remove_all_filters()
- 原文:http://codex.wordpress.org/Function_Reference/apply_filters
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
评论功能已经关闭!