- 插件基础知识
- 插件安全
- 钩子
- 隐私
- 管理菜单
- 简码
- 设置
- 元数据
- 自定义帖子类型
- 分类法
- 用户
-
- JavaScript、Ajax 和 jQuery
- 任务调度
- 国际化
- 插件目录
- 开发人员工具
-
过滤器
过滤器是Hooks的两种类型之一。
它们为函数提供了一种在 WordPress 核心、插件和主题执行期间修改数据的方法。它们是Actions的对应物。
与Actions不同,过滤器旨在以孤立的方式工作,并且永远不应该有副作用,例如影响全局变量和输出。过滤器期望将某些东西返回给它们。
添加过滤器
添加过滤器的过程包括两个步骤。
首先,您需要创建一个回调函数,该函数将在过滤器运行时调用。其次,您需要将回调函数添加到将执行函数调用的挂钩中。
您将使用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' );
假设我们有一个帖子标题“Learning WordPress”,上面的示例将其修改为“The Learning WordPress was filtered”。
你可以参考Hooks章节来获取可用的 hooks 列表。
随着您获得更多经验,查看 WordPress 核心源代码将使您找到最合适的钩子。
附加参数
add_filter() 可以接受两个附加参数,int $priority
用于指定回调函数的优先级,以及int $accepted_args
将传递给回调函数的参数数量。
有关这些参数的详细说明,请阅读关于Actions的文章。
例子
<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' );