过滤器是两种类型的钩子之一。
它们为函数提供了一种在执行WordPress Core,插件和主题期间修改数据的方法。它们是action的对应物。
与aciton不同,筛选器旨在以隔离方式工作,并且不应产生副作用,例如影响全局变量和输出。过滤器希望将某些内容返回给它们。
添加过滤器
添加筛选器的过程包括两个步骤。
首先,您需要创建一个 Callback 函数,该函数将在过滤器运行时调用。其次,您需要将 Callback 函数添加到将执行函数调用的钩子中。
您将使用 add_filter() 函数,传递至少两个参数:
- string $hook_name这是您要挂钩的过滤器的名称,以及
- callable $callback回调函数的名称。
下面的示例将在执行筛选器时运行the_title。
function wporg_filter_title( $title ) {
return 'The ' . $title . ' was filtered';
}
add_filter( 'the_title', 'wporg_filter_title' );
假设我们有一个帖子标题“学习WordPress”,上面的例子会将其修改为“学习WordPress被过滤”。
随着你获得更多的经验,浏览WordPress Core源代码将让你找到最合适的钩子。
其他参数
add_filter() 可以接受两个附加参数int $priority,int $accepted_args,用于为回调函数指定的优先级,以及用于将传递给回调函数的参数数。
例
要在满足特定条件时向<body>添加 CSS 类,请执行以下操作:
function wporg_css_body_class( $classes ) {
if ( ! is_admin() ) {
$classes[] = 'wporg-is-awesome';
}
return $classes;
}
add_filter( 'body_class', 'wporg_css_body_class' );