WordPress 过滤器简介:50 个过滤器的全面概述

WBOY
WBOY 原创
2023-09-02 11:34:01 886浏览

WordPress 过滤器简介:50 个过滤器的全面概述

WordPress 是一个令人惊叹的平台,也是世界上最受欢迎的内容管理系统。起这个标题的原因是因为它的可扩展性。在本系列中,我们将学习过滤器 - 这是扩展 WordPress 的最佳方法之一。

此功能的基础是挂钩 - WordPress 的过滤器和操作。如果没有它们,我们将无法利用 WordPress 真正的可扩展性。

在本系列中,我们将学习过滤器,这是扩展 WordPress 的最佳方法之一。这将是一个由七部分组成的系列,重点关注:

  • WordPress 过滤器的定义以及如何使用它们的介绍(您现在正在阅读的文章),
  • 五篇文章,总共涉及 50 个 WordPress 过滤器(每篇文章 10 个)并附有示例
  • 还有一篇“总结”文章,概述了过滤器的说明和 50 个示例。

核心中有数百个 WordPress 过滤器,这 50 个示例只是其中的一部分(约 10%),因此如果您喜欢该系列并建议有关新过滤器的新示例,可能会有一个附录.

无论如何,是时候介绍 WordPress 过滤器了。让我们开始吧!

什么是 WordPress 过滤器?

在 Codex 中,过滤器定义如下:

过滤器是 WordPress 在执行过程中的某些时刻、在对数据采取某些操作之前传递数据的函数。过滤器位于数据库和浏览器之间,以及浏览器和数据库之间; WordPress 中的大多数输入和输出都会至少经过一个过滤器。 WordPress 默认会进行一些过滤,您的插件可以添加自己的过滤。

因此,本质上,过滤器是在 WordPress 输出网站数据之前对网站数据进行处理的函数。 过滤器是 WordPress 中的两种挂钩之一 - 另一种称为操作,它是另一系列文章的主题。

尽管它看起来是一个复杂的主题,但过滤器(和操作)确实很容易理解。当我第一次遇到它们时,我也很害怕,但是在看到它们是多么简单之后,我只需通过检查 Codex 或挖掘核心代码就可以了解数百个过滤器和操作。

您绝对应该了解数百个过滤器。但首先,您需要知道如何使用它们。

在 WordPress 中使用过滤器

正如我所说,使用 WordPress 过滤器非常简单。只需要了解一些基本功能,您需要了解每个过滤器的作用。 (说实话,最难的部分是学习所有过滤器,但正如您可以想象的那样,您无法一次学习每个过滤器 - 您需要在需要时才学习它们。)

在本节中,我们将讨论四件事:

  1. 创建过滤器函数,
  2. 将其挂在过滤器上,
  3. 从过滤器中删除函数,
  4. 创建我们自己的过滤器。

创建过滤器函数并将其挂接到过滤器

为了处理从过滤器传递的数据,您需要创建一个函数来定义它将如何处理数据,并将其挂接到过滤器。

假设我们正在构建一个插件来删除帖子标题中的元音。你不是说“删除我的帖子标题中的元音”,而是说“将此函数(删除元音)挂钩到我的帖子标题的过滤器”。

复杂吗?并不真地。在下面的示例中,我们将编写从任何内容中删除元音的函数代码:

<?php

function remove_the_vowels( $title ) {
	$title = preg_replace( '/[aeiou]/i', '', $title );
	return $title;
}

?>

该函数采用 $title 字符串,删除元音并将其返回。很容易,对吧?现在,让我们将其提升到一个新的水平并将其连接到过滤器:

<?php

function remove_the_vowels( $title ) {
	$title = preg_replace( '/[aeiou]/i', '', $title );
	return $title;
}

add_filter( 'the_title', 'remove_the_vowels' );

?>

注意到新功能了吗?我们快速看一下add_filter()

<?php

add_filter( $tag, $function_to_add, $priority, $accepted_args );

?>
  • $tag(必需)- 过滤器的名称。
  • $function_to_add(必需)- 挂钩到过滤器的函数的名称。
  • $priority (可选) - 一个整数,用于指定何时执行我们的函数。默认值为 10:如果设置较低,则该函数会较早运行;如果设置较高,则该函数会较晚运行。
  • $accepted_args (可选)- 用于设置过滤器接受的参数数量的整数。默认值为 1

删除过滤器

我们也可以删除附加到过滤器的函数。为此,我们使用一个名为 remove_filter() 的简单函数。让我们看看它是如何工作的:

<?php

remove_filter( $tag, $function_to_remove, $priority );

?>

参数与add_filter()几乎相同:

  • $tag(必需)- 过滤器的名称。
  • $function_to_remove(必需)- 要删除的函数的名称。
  • $priority(可选)- 函数的优先级(首次挂钩函数时定义)。

还有另一个名为 remove_all_filters() 的函数,它只有两个参数($tag$priority),您可以在其中设置过滤器的名称并设置优先级。顾名思义,它会删除所有与过滤器挂钩的函数。

创建您自己的过滤器

想知道这些过滤器是如何创建的?有一个名为 apply_filters() 的特殊函数,它围绕核心代码创建数百个过滤器。当然,它可以在核心之外使用,这意味着我们也可以在插件和主题内创建过滤器。

让我们看看它是如何工作的:

<?php

apply_filters( $tag, $value, $var1, $var2 /* ...and so on */ );

?>
  • $tag(必填)- 您的过滤器挂钩的名称。
  • $value (必填) - 通过 add_filter() 挂钩的过滤器函数修改的值。
  • $var1、$var2 等(可选)- 过滤器的参数(任意数量)。过滤器函数可以使用这些参数,但它们不能由函数返回。

让我们考虑一个例子:假设您编写了一个仅返回 Peter Griffin 的名言的函数:

<?php

function peter_griffin_quote() {
	$quote = "The bird is the word.";
	return $quote;
}

?>
如果您想让人们过滤此引用(并保留您的插件代码),您需要使用 apply_filters() 函数,如下所示:
<?php

function peter_griffin_quote() {
	$quote = "The bird is the word.";
	return apply_filters( 'peter_griffin_quote', $quote );
}

?>
这样,另一个开发人员使用您的插件就可以像这样处理您的函数数据:
<?php

function change_the_quote( $quote ) {
	$quote = str_replace( 'bird', 'nerd', $quote );
	return $quote;
}

add_filter( 'peter_griffin_quote', 'change_the_quote' );

?>

现在,每次运行 peter_griffin_quote() 函数时,Peter 的引用都会略有更改,而无需开发人员编辑您的插件文件。小菜一碟!

如果您需要有关此主题的更多信息,您应该查看 Pippin Williamson 关于 Tuts+ Code 的精彩教程:“使用操作和过滤器编写可扩展插件”。在本教程中,您可以学习如何为您的插件或主题创建过滤器和操作。

结论

您处理得越多,使用滤镜的乐趣就越多。它们有数百种,学习每一种都可以让您更接近成为一名 WordPress 大师。在本系列的下一部分中,我们将了解 10 个 WordPress 过滤器:

  1. login_errors
  2. comment_post_redirect
  3. allowed_redirect_hosts
  4. body_class
  5. locale
  6. sanitize_user
  7. the_content
  8. the_password_form
  9. the_terms
  10. wp_mail_from

我对这个系列感到非常兴奋,希望您能像我一样喜欢它。如果您认为您可以通过建议更多过滤器并要求更多示例来帮助我完成教程,请随时告诉我并通过下面的评论分享您的想法。

如果您喜欢本文中所读的内容,请不要忘记分享!

下一个教程见!

以上就是WordPress 过滤器简介:50 个过滤器的全面概述的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。