WordPress の関数フックの役割と基本的な使用法を分析する、_PHP チュートリアル

WBOY
リリース: 2016-07-12 09:02:35
オリジナル
810 人が閲覧しました

WordPressの関数フックの機能と基本的な使い方の分析

WordPressのプラグインの仕組みは、実際にはフックとして中国語に翻訳されており、WordPressのコア操作に参加することができます。それは素晴らしいことです。以下で詳しく見ていきましょう。
フックの分類

フックは 2 種類に分けられ、1 つはアクションと呼ばれ、もう 1 つはフィルターと呼ばれます。これら 2 つのフックの実装原理は基本的に同じです。後で説明しますが、使用方法の違いは、フィルターには戻り値がありますが、アクションには戻り値がないことです。

アクションの概念は、メールの送信など、特定の状況または特別な場所でいくつかの機能を実行できるようにすることです。フィルターを使用すると、WordPress コアが使用する必要がある値を変更でき、WordPress が使用します。これらの値は関数の戻り値などのようなものです。

アクションフック

wp_head は、テーマの開発中に非常に一般的に使用されるアクション フックです。実際、開発者は wp_head() 関数を head タグに追加します。

プラグイン開発者が head タグに文を追加したい場合は、wp_head フックを使用できます。簡単な例を次に示します。

リーリー

コードを追加した後、フロントエンド Web ページのソース コードを表示すると、head タグに追加したコンテンツを確認できます。

20151222154540066.png (437×83)

上記は簡単な例で、一文を出力しただけです。このフックを使用すると、404 ページに遭遇したときに管理者に電子メールを送信するプラグインを作成することもできます。

リーリー

フィルターフック

私の個人的な経験によれば、特に PHP に慣れていない人にとって、フィルター フックは理解するのが難しいかもしれません。

フィルター フックを使用すると、フィルター コールバック関数は現在の値であるパラメーターを受け入れることができます。記事のコンテンツを呼び出すために使用される the_content() 関数を思い出してください。この関数は the_content フィルターを提供します。

関数を the_content フックに追加します。この関数は、現在の値であるパラメーターを受け取る必要があります。

リーリー

フック原理

実際、add_action() と add_filter() を呼び出すと、配列要素のみが $wp_filter グローバル変数に追加されます。さらに、action と filter は共通のグローバル変数です。つまり、filter とアクションは、同じ名前。

do_action() が呼び出されると、$wp_filter グローバル変数内のこのアクションに追加された関数が検索され、ループで実行されます。

apply_filters() には do_action() よりも 1 つ多くのステップがあり、呼び出されるたびにこの関数の戻り値を受け取り、最終的に使用するために複数回フィルターされた値を返します。

現在のフックリストを取得する
WordPress のアクションとフィルターはプラグイン メカニズムの中核部分であり、特定の場所で実行する必要があるアクションを積極的に追加できるようになります。通常、関数をマウントするには add_action() 関数と add_filter() 関数を使用します。

これらのフックは $wp_filter グローバル変数に保存されているため、フック リストを取得するには、$wp_filter グローバル変数を直接取得できます。

リーリー

上記のコードはフックリストを出力します。

20151222154645343.png (388×432)

興味がありそうな記事:

  • WordPressテーマに記事リストページのページ番号ナビゲーションを追加するためのPHPコード例
  • テーマを有効にしてガジェットをサポートし、プラグインを有効にする関数をWordPressに追加する
  • 書き方の基本を詳しく解説WordPress メソッドのショートコード形式のタグ

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1084563.html技術記事 WordPress の関数フックの役割と基本的な使い方を分析します。WordPress のプラグインの仕組みは、実際にはこのフックに翻訳され、WordPress に参加できるようになります。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート