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 :
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 !
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.
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 :
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 ); ?>
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. 1
. 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 ); ?>
sont presque les mêmes que add_filter()
:
还有另一个名为 remove_all_filters()
的函数,它只有两个参数($tag
和 $priority
),您可以在其中设置过滤器的名称并设置优先级。顾名思义,它会删除所有与过滤器挂钩的函数。
想知道这些过滤器是如何创建的?有一个名为 apply_filters()
的特殊函数,它围绕核心代码创建数百个过滤器。当然,它可以在核心之外使用,这意味着我们也可以在插件和主题内创建过滤器。
让我们看看它是如何工作的:
<?php apply_filters( $tag, $value, $var1, $var2 /* ...and so on */ ); ?>
add_filter()
挂钩的过滤器函数修改的值。让我们考虑一个例子:假设您编写了一个仅返回 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 过滤器:
login_errors
comment_post_redirect
allowed_redirect_hosts
body_class
locale
sanitize_user
the_content
the_password_form
the_terms
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!