Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in WordPress-Filter: Eine umfassende Übersicht über 50 Filter

Einführung in WordPress-Filter: Eine umfassende Übersicht über 50 Filter

WBOY
WBOYOriginal
2023-09-02 11:33:081447Durchsuche

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

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:

  • Definition von WordPress-Filtern und eine Einführung in deren Verwendung (der Artikel, den Sie gerade lesen),
  • Fünf Artikel zu insgesamt 50 WordPress-Filtern (10 pro Artikel) mit Beispielen
  • Es gibt auch einen „Zusammenfassungs“-Artikel mit der Filterbeschreibung und 50 Beispielen.

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!

Was sind WordPress-Filter?

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.

Filter in WordPress verwenden

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:

  1. Filterfunktion erstellen,
  2. Hängen Sie es an den Filter,
  3. Funktion aus Filter entfernen,
  4. Erstellen Sie unsere eigenen Filter.

Erstellen Sie eine Filterfunktion und verknüpfen Sie sie mit dem Filter

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 );

?>
  • $tag (erforderlich) – Der Name des Filters.
  • $function_to_add (erforderlich) – Der Name der Funktion, die in den Filter eingebunden werden soll.
  • $priority (optional) – Eine Ganzzahl, die angibt, wann unsere Funktion ausgeführt werden soll. Der Standardwert ist 10: Bei einer niedrigeren Einstellung wird die Funktion früher ausgeführt; bei einer höheren Einstellung wird die Funktion später ausgeführt.
  • $accepted_args (optional) – Eine Ganzzahl, mit der die Anzahl der vom Filter akzeptierten Argumente festgelegt wird. Der Standardwert ist 1.

Filter entfernen

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 );

?>
Die

-Parameter sind fast die gleichen wie 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

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

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

下一个教程见!

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn