WordPress は素晴らしいプラットフォームであり、世界で最も人気のあるコンテンツ管理システムです。このタイトルの理由は、その拡張性のためです。このシリーズでは、WordPress を拡張する最良の方法の 1 つであるフィルターについて学びます。
この機能の基礎は フック - WordPress のフィルターとアクションです。これらがなければ、WordPress の真のスケーラビリティを活用することはできません。
このシリーズでは、WordPress をスケールするための最良の方法の 1 つであるフィルターについて学びます。これは、次の内容に焦点を当てた 7 部構成のシリーズになります。
とにかく、WordPress フィルターを導入しましょう。はじめましょう!
WordPress フィルターとは何ですか?
フィルターは、WordPress がデータに対して特定のアクションを実行する前に、実行中の特定の時点でデータを通過させる関数です。フィルターはデータベースとブラウザーの間、およびブラウザーとデータベースの間に配置され、WordPress でのほとんどの入出力は少なくとも 1 つのフィルターを通過します。 WordPress はデフォルトでいくつかのフィルタリングを実行しますが、プラグインは独自のフィルタリングを追加できます。したがって、フィルターは本質的に、WordPress が出力する前に Web サイトのデータを
処理する関数です。 フィルターは、WordPressの2種類のフックのうちの1つです。もう1つは、アクションと呼ばれ、別の一連の記事の主題です。 複雑なトピックのように見えますが、フィルター (および操作) は非常に簡単に理解できます。私も初めてそれらに出会ったときは怖気づいていましたが、その単純さを見てからは、Codex を確認したりコア コードを詳しく調べたりするだけで、何百ものフィルターと操作について学ぶことができました。
絶対に知っておくべきフィルターが何百もあります。ただし、まず、それらの使用方法を知る必要があります。
WordPress でのフィルターの使用
このセクションでは、次の 4 つのことについて説明します。
フィルター関数の作成,
投稿タイトルの母音を削除するプラグインを構築しているとします。 「投稿タイトルの母音を削除する」と言う代わりに、「この機能 (母音を削除する) を投稿タイトルのフィルターにフックする」と言います。
複雑ですか?あまり。次の例では、
anythingから母音を削除する関数をコーディングします。 リーリー この関数は、$title
文字列を受け取り、母音を削除して返します。簡単ですよね?ここで、次のレベルに進んでフィルターに接続しましょう:
リーリー
新しい機能に気づきましたか?
add_filter()
リーリー
$accepted_args
フィルターを削除
リーリー
パラメータは
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
我对这个系列感到非常兴奋,希望您能像我一样喜欢它。如果您认为您可以通过建议更多过滤器并要求更多示例来帮助我完成教程,请随时告诉我并通过下面的评论分享您的想法。
如果您喜欢本文中所读的内容,请不要忘记分享!
下一个教程见!
以上がWordPress フィルターの紹介: 50 個のフィルターの包括的な概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。