跳转到主要内容

过滤器filters

过滤器

过滤器是两种类型的Hook之一。

它们为函数提供了一种在 WordPress 核心、插件和主题执行期间修改数据的方法。它们与Actions相对应。

与Actions不同,过滤器旨在以隔离的方式工作,并且永远不应该产生副作用,例如影响全局变量和输出。过滤器期望有一些东西返回给他们。

添加过滤器

添加过滤器的过程包括两个步骤。

首先,您需要创建一个回调函数,该函数将在过滤器运行时调用。其次,您需要将回调函数添加到一个钩子中,该钩子将执行函数的调用。

您将使用add_filter() 函数,并传递至少两个参数:

  1. string $hook_name这是您要连接的过滤器的名称,并且
  2. callable $callback您的回调函数的名称。

下面的示例将在the_title执行过滤器时运行。


function wporg_filter_title( $title ) {
	return 'The ' . $title . ' was filtered';
}
add_filter( 'the_title', 'wporg_filter_title' );

假设我们有一个帖子标题“学习 WordPress”,上面的示例将其修改为“学习 WordPress 已被过滤”。

您可以参考Hooks章节来获取可用钩子的列表。

随着您获得更多经验,查看 WordPress 核心源代码将使您找到最合适的挂钩。

附加参数

add_filter() 可以接受两个附加参数,int $priority用于指定回调函数的优先级,以及int $accepted_args将传递给回调函数的参数数量。

有关这些参数的详细说明,请阅读有关Actions的文章。

例子

要在满足特定条件时向标记添加 CSS 类:


function wporg_css_body_class( $classes ) {
	if ( ! is_admin() ) {
		$classes[] = 'wporg-is-awesome';
	}
	return $classes;
}
add_filter( 'body_class', 'wporg_css_body_class' );