Maison  >  Article  >  développement back-end  >  Introduction aux filtres WordPress : un aperçu complet de 50 filtres

Introduction aux filtres WordPress : un aperçu complet de 50 filtres

WBOY
WBOYoriginal
2023-09-02 11:33:081447parcourir

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

WordPress est une plateforme étonnante et le système de gestion de contenu le plus populaire au monde. La raison de ce titre est son évolutivité. Dans cette série, nous découvrirons les filtres – l’un des meilleurs moyens de faire évoluer WordPress.

La base de cette fonctionnalité est Hooks - Filtres et actions pour WordPress. Sans eux, nous ne serions pas en mesure de profiter de la véritable évolutivité de WordPress.

Dans cette série, nous découvrirons les filtres, l’un des meilleurs moyens de faire évoluer WordPress. Il s'agira d'une série en sept parties axées sur :

  • Définition des filtres WordPress et une introduction à leur utilisation (l'article que vous lisez actuellement),
  • Cinq articles couvrant un total de 50 filtres WordPress (10 par article) avec des exemples
  • Il existe également un article « Résumé » décrivant la description du filtre et 50 exemples.

Il y a des centaines de filtres WordPress dans le noyau, ces 50 exemples n'en sont qu'une partie (environ 10%), donc si vous aimez la série et suggérez de nouveaux exemples pour de nouveaux filtres, il y a peut-être une annexe

.

Quoi qu’il en soit, il est temps d’introduire les filtres WordPress. Commençons !

Que sont les filtres WordPress ?

Dans Codex, le filtre est défini comme suit :

Les Filtres sont des fonctions par lesquelles WordPress transmet les données à certains moments de l'exécution, avant d'effectuer certaines actions sur les données. Les filtres se situent entre la base de données et le navigateur, et entre le navigateur et la base de données ; la plupart des entrées et sorties dans WordPress passeront par au moins un filtre. WordPress effectue un filtrage par défaut et votre plugin peut ajouter le vôtre.

Donc, essentiellement, les filtres sont des fonctions qui traitent les données du site Web avant que WordPress ne les publie. Les Filtres sont l'un des deux hooks de WordPress – l'autre s'appelle Actions, qui fait l'objet d'une autre série d'articles.

Bien que cela semble être un sujet complexe, les filtres (et les actions) sont vraiment faciles à comprendre. J'ai également été intimidé lorsque je les ai rencontrés pour la première fois, mais après avoir constaté à quel point ils étaient simples, j'ai pu en apprendre davantage sur des centaines de filtres et d'opérations simplement en vérifiant le Codex ou en creusant dans le code principal.

Il existe des centaines de filtres que vous devez absolument connaître. Mais il faut d’abord savoir comment les utiliser.

Utiliser des filtres dans WordPress

Comme je l'ai dit, utiliser les filtres WordPress est très simple. Juste pour comprendre certaines des fonctionnalités de base, vous devez comprendre ce que fait chaque filtre. (Pour être honnête, le plus difficile est d'apprendre tous les filtres, mais comme vous pouvez l'imaginer, vous ne pouvez pas apprendre tous les filtres en même temps - vous devez les apprendre lorsque vous en avez besoin.)

Dans cette section, nous discuterons de quatre choses :

  1. Créer une fonction de filtre,
  2. Accrochez-le au filtre,
  3. Supprimer la fonction du filtre,
  4. Créez nos propres filtres.

Créez une fonction de filtre et accrochez-la au filtre

Afin de traiter les données transmises par le filtre, vous devez créer une fonction qui définit comment elle traitera les données et les reliera au filtre.

Supposons que nous construisions un plugin pour supprimer les voyelles dans les titres des articles. Au lieu de dire "supprimer les voyelles dans le titre de mon message", vous dites "accrocher cette fonction (supprimer les voyelles) au filtre du titre de mon message".

Est-ce compliqué ? Pas vraiment. Dans l'exemple suivant, nous allons coder une fonction qui supprime les voyelles de anything :

<?php

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

?>

Cette fonction prend une chaîne $title, supprime les voyelles et la renvoie. Facile, non ? Maintenant, passons au niveau supérieur et connectons-le à un filtre :

<?php

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

add_filter( 'the_title', 'remove_the_vowels' );

?>

Avez-vous remarqué la nouvelle fonctionnalité ? Jetons un coup d'oeil rapide add_filter() :

<?php

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

?>
  • $tag (obligatoire) - Le nom du filtre.
  • $function_to_add (obligatoire) - Le nom de la fonction à accrocher au filtre.
  • $priority (facultatif) - Un entier spécifiant quand exécuter notre fonction. La valeur par défaut est 10 : si le paramètre est inférieur, la fonction s'exécutera plus tôt ; si le paramètre est supérieur, la fonction s'exécutera plus tard.
  • $accepted_args (facultatif) - Un entier utilisé pour définir le nombre d'arguments acceptés par le filtre. La valeur par défaut est 1.

Supprimer le filtre

Nous pouvons également supprimer les fonctions attachées aux filtres. Pour ce faire, nous utilisons une fonction simple appelée remove_filter(). Voyons comment cela fonctionne :

<?php

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

?>
Les paramètres

sont presque les mêmes que 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

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

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

下一个教程见!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn