什么是过滤器
Filters 是WordPress在执行过程中的某些点,在对数据执行某些操作(例如将数据添加到数据库或发送到浏览器屏幕)之前传递数据的函数。过滤器位于数据库和浏览器之间(WordPress生成页面时),以及浏览器和数据库之间(WordPress向数据库添加新帖子和评论时);WordPress中的大多数输入和输出都通过至少一个过滤器。WordPress默认情况下会进行一些过滤,您的插件可以添加自己的过滤。
挂钩到过滤器中,以便用户更改某些特定数据(值、函数输出等)。过滤器挂钩通过apply_filters
功能
这些过滤器挂钩包括过滤器的名称(或标签)以及至少用于过滤(即以某种方式更改)数据的函数名。
要更改帖子的标题,可以使用the_title
过滤器挂钩,定义如下:
apply_filters( \'the_title\', $title, $id );
这意味着过滤器具有标记/名称
the_title
, 第一个参数
$title
是要更改的数据(即文章标题)和第二个参数
$id
是额外信息(在本例中是post ID)。
要显示title of every post 例如,在大写字母中,可以使用以下行:
add_filter(\'the_title\', \'strtoupper\');
如果我们看看
add_filter
函数,我们看到它的定义如下:
add_filter( $tag, $function_to_add, $priority, $accepted_args );
我们只指定了第一个和第二个(必需)参数,而第三个和第四个参数设置为其各自的默认值(即。,
10
和
1
).
更复杂的过滤器filter only a certain post, 您可以使用额外的信息(对于此筛选器:ID)。为此,必须指定参数的数量(在本例中为2),并且为了再次执行此操作,必须指定优先级参数(位于参数数量之前)。
假设我们只想影响ID为42的帖子的标题,那么它如下所示:
add_filter(\'the_title\', \'my_strtoupper\', 10, 2);
function my_strtoupper($title, $id) {
if (42 === $id) return strtoupper($title);
return $title;
} // function my_strtoupper
在这种情况下,我们必须指定所有四个可用参数。
我有哪些参数
要识别某个过滤器的可用参数(数量),必须查找其定义位置(在本例中:
here).
<小时>References: