add_filter()
add_filter( string $tag, callable $function_to_add, int…
add_filter( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 )
将函数或方法挂接到特定的筛选器操作。
Hook a function or method to a specific filter action.
目录锚点:#说明#参数#返回#源码#笔记
说明(Description)
WordPress提供了过滤器钩子,允许插件在运行时修改各种类型的内部数据。
插件可以通过将回调绑定到筛选器挂钩来修改数据。稍后应用筛选器时,将按优先级顺序运行每个绑定回调,并提供通过返回新值来修改值的机会。
下面的示例演示如何将回调函数绑定到筛选器挂钩。
注意$example被传递给回调函数,(可能)被修改,然后返回:
函数示例回调($example){
//也许可以用某种方式修改$example。
返回$example;
}
添加过滤器(“example_filter”、“example_callback”);
绑定回调可以接受从none到作为参数传递的参数总数
在相应的apply_filters()调用中。
换句话说,如果apply_filters()调用传递了四个参数,则回调绑定到
它不能接受任何参数(与1相同)或最多4个参数。重要的是
$accepted_args值必须反映绑定回调实际的参数数
选择接受。如果回调未接受任何参数,则认为
与接受1个参数相同。例如:
//过滤调用。
$value=应用过滤器(’hook’,$value,$arg2,$arg3);
//接受零/一个参数。
函数示例_callback(){
…
返回“某个值”;
}
add_filter(’hook’,’example_callback’);//其中$priority是默认值10,$accepted_args是默认值1。
//接受两个论点(三个可能)。
函数示例u回调($value,$arg2){
…
返回$maybe_modified_value;
}
add_filter(’hook’,’example_callback’,10,2);//其中$priority是10,$accepted_args是2。
_注意:无论回调是否有效,函数都将返回true。由你来照顾。这是为了优化的目的,所以一切尽可能快。
参数(Parameters)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
$tag | (string) | 必需 | 要挂接$function_to_add回调的筛选器的名称。 |
$function_to_add | (callable) | 必需 | 应用筛选器时要运行的回调。 |
$priority | (int) | 可选 | 用于指定与特定操作关联的函数的执行顺序。较低的数字对应于先前的执行,具有相同优先级的函数按它们添加到操作中的顺序执行。 |
$accepted_args | (int) | 可选 | 函数接受的参数数。 |
返回(Return)
(true)
源码(Source)
/** * Hook a function or method to a specific filter action. * * WordPress offers filter hooks to allow plugins to modify * various types of internal data at runtime. * * A plugin can modify data by binding a callback to a filter hook. When the filter * is later applied, each bound callback is run in order of priority, and given * the opportunity to modify a value by returning a new value. * * The following example shows how a callback function is bound to a filter hook. * * Note that `$example` is passed to the callback, (maybe) modified, then returned: * * function example_callback( $example ) { * // Maybe modify $example in some way. * return $example; * } * add_filter( 'example_filter', 'example_callback' ); * * Since WordPress 1.5.1, bound callbacks can take as many arguments as are * passed as parameters in the corresponding apply_filters() call. The `$accepted_args` * parameter allows for calling functions only when the number of args match. * * *Note:* the function will return true whether or not the callback is valid. * It is up to you to take care. This is done for optimization purposes, * so everything is as quick as possible. * * @since 0.71 * * @global array $wp_filter A multidimensional array of all hooks and the callbacks hooked to them. * @global array $merged_filters Tracks the tags that need to be merged for later. If the hook is added, * it doesn't need to run through that process. * * @param string $tag The name of the filter to hook the $function_to_add callback to. * @param callback $function_to_add The callback to be run when the filter is applied. * @param int $priority Optional. Used to specify the order in which the functions * associated with a particular action are executed. Default 10. * Lower numbers correspond with earlier execution, * and functions with the same priority are executed * in the order in which they were added to the action. * @param int $accepted_args Optional. The number of arguments the function accepts. Default 1. * @return true */ function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1 ) { global $wp_filter, $merged_filters; $idx = _wp_filter_build_unique_id($tag, $function_to_add, $priority); $wp_filter[$tag][$priority][$idx] = array('function' => $function_to_add, 'accepted_args' => $accepted_args); unset( $merged_filters[ $tag ] ); return true; }
更新版本 | 源码位置 | 使用 | 被使用 |
---|---|---|---|
0.71 | wp-includes/plugin.php:108 | 94 | 0 |
笔记(Notes)
示例:让我们将额外的部分添加到2117首页。
示例:显示文章摘要的自定义长度。
要将变量传递给过滤器的被调用函数,可以在原始编码的applyu过滤器中没有参数时使用闭包(因为PHP 5.3+)。例如:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!