ホームページ  >  記事  >  バックエンド開発  >  WordPress フィルターの紹介: 50 個のフィルターの包括的な概要

WordPress フィルターの紹介: 50 個のフィルターの包括的な概要

WBOY
WBOYオリジナル
2023-09-02 11:33:081450ブラウズ

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

WordPress は素晴らしいプラットフォームであり、世界で最も人気のあるコンテンツ管理システムです。このタイトルの理由は、その拡張性のためです。このシリーズでは、WordPress を拡張する最良の方法の 1 つであるフィルターについて学びます。

この機能の基礎は フック - WordPress のフィルターとアクションです。これらがなければ、WordPress の真のスケーラビリティを活用することはできません。

このシリーズでは、WordPress をスケールするための最良の方法の 1 つであるフィルターについて学びます。これは、次の内容に焦点を当てた 7 部構成のシリーズになります。

    WordPress フィルターの定義とその使用方法の紹介 (現在読んでいる記事)、
  • 合計 50 個の WordPress フィルター (記事ごとに 10 個) を例付きでカバーする 5 つの記事
  • フィルターの説明と 50 の例を概説する「概要」記事もあります。
コアには数百の WordPress フィルターがあり、これらの 50 の例はそれらのサブセット (約 10%) にすぎません。そのため、このシリーズが好きで、新しいフィルターの新しい例を提案する場合は、付録がある可能性があります。

とにかく、WordPress フィルターを導入しましょう。はじめましょう!

WordPress フィルターとは何ですか?

Codex では、フィルターは次のように定義されます。

フィルターは、WordPress がデータに対して特定のアクションを実行する前に、実行中の特定の時点でデータを通過させる関数です。フィルターはデータベースとブラウザーの間、およびブラウザーとデータベースの間に配置され、WordPress でのほとんどの入出力は少なくとも 1 つのフィルターを通過します。 WordPress はデフォルトでいくつかのフィルタリングを実行しますが、プラグインは独自のフィルタリングを追加できます。
したがって、フィルターは本質的に、WordPress が出力する前に Web サイトのデータを

処理する関数です。 フィルターは、WordPressの2種類のフックのうちの1つです。もう1つは、アクションと呼ばれ、別の一連の記事の主題です。 複雑なトピックのように見えますが、フィルター (および操作) は非常に簡単に理解できます。私も初めてそれらに出会ったときは怖気づいていましたが、その単純さを見てからは、Codex を確認したりコア コードを詳しく調べたりするだけで、何百ものフィルターと操作について学ぶことができました。

絶対に知っておくべきフィルターが何百もあります。ただし、まず、それらの使用方法を知る必要があります。

WordPress でのフィルターの使用

先ほども述べたように、WordPress フィルターの使用は非常に簡単です。基本的な機能のいくつかを理解するには、各フィルターの機能を理解する必要があります。 (正直に言うと、すべてのフィルターを学習するのが最も難しい部分ですが、ご想像のとおり、すべてのフィルターを一度に学習することはできません。必要に応じて学習する必要があります。)

このセクションでは、次の 4 つのことについて説明します。

フィルター関数の作成,
  1. フィルターに掛けてください、
  2. フィルターから関数を削除します。
  3. 独自のフィルターを作成します。
  4. フィルター関数を作成してフィルターにフックします

フィルターから渡されたデータを処理するには、データの処理方法を定義する関数を作成し、それをフィルターにフックする必要があります。

投稿タイトルの母音を削除するプラグインを構築しているとします。 「投稿タイトルの母音を削除する」と言う代わりに、「この機能 (母音を削除する) を投稿タイトルのフィルターにフックする」と言います。

複雑ですか?あまり。次の例では、

anything

から母音を削除する関数をコーディングします。 リーリー この関数は、$title

文字列を受け取り、母音を削除して返します。簡単ですよね?ここで、次のレベルに進んでフィルターに接続しましょう:

リーリー 新しい機能に気づきましたか? add_filter()

を簡単に見てみましょう:

リーリー

$tag
    (必須) - フィルターの名前。
  • $function_to_add
  • (必須) - フィルターにフックする関数の名前。
  • $priority
  • (オプション) - 関数をいつ実行するかを指定する整数。デフォルト値は
  • 10 です。設定が低い場合、関数は早く実行され、設定が高い場合、関数は後で実行されます。 $accepted_args
  • (オプション) - フィルターが受け入れる引数の数を設定する整数。デフォルト値は
  • 1 です。 フィルターを削除
フィルターに付加された関数を削除することもできます。これを行うには、

remove_filter()

という単純な関数を使用します。それがどのように機能するかを見てみましょう:

リーリー パラメータは 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。