WordPress ist eine erstaunliche Plattform und das beliebteste Content-Management-System der Welt. Der Grund für diesen Titel liegt in seiner Skalierbarkeit. In dieser Serie lernen wir etwas über Filter – eine der besten Möglichkeiten, WordPress zu skalieren.
Die Grundlage dieser Funktion sind Hooks – Filter und Aktionen für WordPress. Ohne sie wären wir nicht in der Lage, die wahre Skalierbarkeit von WordPress zu nutzen.
In dieser Serie lernen wir Filter kennen, eine der besten Möglichkeiten, WordPress zu skalieren. Dies wird eine siebenteilige Serie sein, die sich auf Folgendes konzentriert:
Es gibt Hunderte von WordPress-Filtern im Kern, diese 50 Beispiele sind nur ein Teil davon (ca. 10 %). Wenn Ihnen die Serie gefällt und Sie neue Beispiele für neue Filter vorschlagen, gibt es möglicherweise einen Anhang
Wie auch immer, es ist Zeit, WordPress-Filter einzuführen. Fangen wir an!
In Codex ist der Filter wie folgt definiert:
Filter sind Funktionen, die WordPress an bestimmten Punkten während der Ausführung durchläuft, bevor bestimmte Aktionen mit den Daten durchgeführt werden. Filter befinden sich zwischen der Datenbank und dem Browser, und zwischen dem Browser und der Datenbank durchlaufen die meisten Eingaben und Ausgaben in WordPress mindestens einen Filter. WordPress führt standardmäßig einige Filterungen durch und Ihr Plugin kann Ihre eigenen hinzufügen.
Filter sind also im Wesentlichen Funktionen, die Website-Daten verarbeiten , bevor WordPress sie ausgibt. Filter sind einer von zwei Hooks in WordPress – der andere heißt Aktionen und ist Gegenstand einer weiteren Artikelserie.
Obwohl es ein komplexes Thema zu sein scheint, sind die Filter (und Aktionen) wirklich leicht zu verstehen. Ich war auch eingeschüchtert, als ich ihnen zum ersten Mal begegnete, aber nachdem ich gesehen hatte, wie einfach sie waren, konnte ich Hunderte von Filtern und Operationen kennenlernen, indem ich einfach den Codex überprüfte oder mich in den Kerncode vertiefte.
Es gibt Hunderte von Filtern, die Sie unbedingt kennen sollten. Aber zuerst müssen Sie wissen, wie man sie verwendet.
Wie gesagt, die Verwendung von WordPress-Filtern ist sehr einfach. Um einige der Grundfunktionen zu verstehen, müssen Sie verstehen, was die einzelnen Filter bewirken. (Um ehrlich zu sein, ist es am schwierigsten, alle Filter zu lernen, aber wie Sie sich vorstellen können, können Sie nicht jeden Filter auf einmal lernen – Sie müssen sie lernen, wenn Sie sie brauchen.)
In diesem Abschnitt werden wir vier Dinge besprechen:
Um die vom Filter übergebenen Daten zu verarbeiten, müssen Sie eine Funktion erstellen, die definiert, wie die Daten verarbeitet werden, und sie mit dem Filter verknüpfen.
Angenommen, wir entwickeln ein Plugin zum Entfernen von Vokalen in Beitragstiteln. Anstatt zu sagen „Entferne die Vokale in meinem Beitragstitel“, sagst du „Hänge diese Funktion (Vokale entfernen) an den Filter meines Beitragstitels an“.
Ist es kompliziert? Nicht wirklich. Im folgenden Beispiel programmieren wir eine Funktion, die Vokale aus irgendetwas entfernt:
<?php function remove_the_vowels( $title ) { $title = preg_replace( '/[aeiou]/i', '', $title ); return $title; } ?>
Diese Funktion nimmt eine $title
-Zeichenfolge, entfernt die Vokale und gibt sie zurück. Einfach, oder? Gehen wir nun auf die nächste Ebene und verbinden es mit einem Filter:
<?php function remove_the_vowels( $title ) { $title = preg_replace( '/[aeiou]/i', '', $title ); return $title; } add_filter( 'the_title', 'remove_the_vowels' ); ?>
Haben Sie die neue Funktion bemerkt? Werfen wir einen kurzen Blick add_filter()
:
<?php add_filter( $tag, $function_to_add, $priority, $accepted_args ); ?>
10
: Bei einer niedrigeren Einstellung wird die Funktion früher ausgeführt; bei einer höheren Einstellung wird die Funktion später ausgeführt. 1
. Wir können auch mit Filtern verbundene Funktionen entfernen. Dazu verwenden wir eine einfache Funktion namens remove_filter()
. Mal sehen, wie es funktioniert:
<?php remove_filter( $tag, $function_to_remove, $priority ); ?>
-Parameter sind fast die gleichen wie 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
我对这个系列感到非常兴奋,希望您能像我一样喜欢它。如果您认为您可以通过建议更多过滤器并要求更多示例来帮助我完成教程,请随时告诉我并通过下面的评论分享您的想法。
如果您喜欢本文中所读的内容,请不要忘记分享!
下一个教程见!
Das obige ist der detaillierte Inhalt vonEinführung in WordPress-Filter: Eine umfassende Übersicht über 50 Filter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!