add_filter()

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+)。例如:

absint()

absint( mixed $maybeint )将值转换为非负整数,也就是取绝对值。Convert a value to non-negative integer.目录锚点:#参数#返回#源码#笔记参数(Parameters)参数类型必填说明$maybeint(mixed)必需要转换为非负整数的数据。返回(Return)(int)非负整数。源码(Source)function absint( $maybeint ) { return abs( intval( $maybeint ) );}/** *...

日期:2020-06-23 10:35:32 浏览:1230

activate_plugin()

activate_plugin( string $plugin, string $redirect = '', bool $network_wide = false, bool $silent = false )尝试激活插件,并在成功时重定向。Attempts activation of plugin in a “sandbox” and redirects on success.目录锚点:#说明#参数#返回#源码#笔记说明(Description)已激活的插件将不会再次尝试激活。其工作方式是在尝试包含插件...

日期:2020-06-23 10:39:26 浏览:981

activate_plugins()

activate_plugins( string|string[] $plugins, string $redirect = '', bool $network_wide = false, bool $silent = false )激活多个插件。Activate multiple plugins.目录锚点:#说明#参数#返回#源码说明(Description)当WP_Error返回时,并不意...

日期:2020-09-08 17:28:27 浏览:1038

activate_sitewide_plugin()

activate_sitewide_plugin()不推荐用于激活仅网络插件的功能。Deprecated functionality for activating a network-only plugin.目录锚点:#说明#返回#源码说明(Description)另见激活插件()返回(Return)无返回值源码(Source)更新版本源码位置使用被使用3.0.0 wp-admin/includes/ms-deprecated.php:5701 function...

日期:2020-09-08 17:28:28 浏览:1730

addslashes_gpc()

addslashes_gpc( string $gpc )添加斜线以转义字符串。Adds slashes to escape strings.目录锚点:#说明#参数#返回#源码说明(Description)如果设置了magic_quotes_gpc,将首先删除斜线,请参见https://www.php.net/magic_quotes更多细节。参数(Parameters)参数类型必填说明 $gpc (string) ...

日期:2020-09-21 12:46:52 浏览:889

addslashes_strings_only()

addslashes_strings_only( mixed $value )仅当提供的值是字符串时才添加斜杠。Adds slashes only if the provided value is a string.目录锚点:#参数#返回#源码参数(Parameters)参数类型必填说明 $value (mixed) 必需 返回(Return)(mixe...

日期:2020-09-24 15:58:41 浏览:1269

add_action()

add_action( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 )将函数挂接到特定操作上。Hooks a function on to a specific action.目录锚点:#说明#参数#返回#源码#笔记说明(Description)Actions是WordPress核心在执行期间...

日期:2020-09-08 17:28:28 浏览:1128

add_blog_option()

add_blog_option( int $id, string $option, mixed $value )为给定的博客id添加新选项。Add a new option for a given blog id.目录锚点:#说明#参数#返回#源码#笔记说明(Description)不需要序列化值。如果需要序列化该值,则在将其插入数据库之前将对其进行序列化。请记住,资源不能序列化或作为选项添加。可以创建不带值的选项,然后稍后更新这些值。现有选项将不会更新,并执行检...

日期:2020-08-26 10:53:23 浏览:944

add_clean_index()

add_clean_index( string $table, string $index )向指定表添加索引。Adds an index to a specified table.目录锚点:#参数#返回#源码#笔记参数(Parameters)参数类型必填说明 $table (string) 必需 数据库表名。 ...

日期:2020-09-08 17:28:29 浏览:945

add_comments_page()

add_comments_page( string $page_title, string $menu_title, string $capability, string $menu_slug, callable $function = '', int $position = null )将子菜单页添加到“注释”主菜单。Add submenu page to the Comments ma...

日期:2020-08-24 11:14:39 浏览:992