WordPressフックとは何ですか? アクションとフィルターは機能の拡張にどのように役立ちますか?

公開: 2018-06-13
WordPress Hooks | LearnWoo

最終更新日-2020年10月9日

WordPressに取り組んだことがあるなら、「フック」という言葉に何度も出くわしたに違いありません。 プラグインとテーマを作成したいWordPress開発者の場合、WordPressフックは開発に不可欠です。

しかし、フックとは正確には何ですか?

WordPress.orgコーデックスによると、「フックはWordPressによって提供され、プラグインがWordPressの残りの部分に「フック」できるようにします。 つまり、特定の時間にプラグインの関数を呼び出し、それによってプラグインを動かします。」

一般的に、フックはあるものを別のものに接続します。 WordPressの用語では、ユーザー定義のコードをWordPressコアの既存のコードにフック(接続)します。

これをまっすぐにしましょう。

WordPressはいくつかのデフォルト機能で構築されています。 デフォルトの動作とそれに関連付けられた値があります。 フックを使用すると、これらのデフォルトの動作を変更して既存の値を置き換えることができるため、必要に応じてWordPress環境をカスタマイズできます。

フックの種類

フックには2つのタイプがあります。

  1. アクションフック–実行のある時点で実行するために使用され、デフォルトの実行フローを変更します。 これがWordPressアクションフックのリストです。
  2. フィルターフック–アクションフックとは少し異なります。フィルターフックは、デフォルトのWordPressデータを変更し、カスタム値に置き換えてから、フロントエンドでユーザーに表示したり、データベースに保存したりするために使用されます。 フィルタフックのリストは、WordPressCodexにあります。

基本的に、フックはそれ自体が事前定義された関数です。 したがって、フックに関連付けられている2つのタイプの関数は次のとおりです。

  1. アクション関数–これらの関数は、ブログが投稿されたとき、ページの読み込みなどのイベントで役立ちます。
    アクション機能の一部を次に示します。

    • add_action()
    • did_action()
    • doing_action()
    • do_action()
    • do_action_ref_array()
    • has_action()
    • remove_action()
    • remove_all_actions()
  2. フィルター関数–すべてのフィルター関数は何らかの値を返し、それをデフォルトのWordPressデータに置き換えます。
    フィルタ機能には次のものがあります。

    • add_filter()
    • apply_filters()
    • apply_filters_ref_array()
    • current_filter()
    • doing_filter()
    • has_filter()
    • remove_all_filters()
    • remove_filter()

インフォグラフィック

フックがどのように機能するかをよりよく理解するために、次のインフォグラフィックを観察してください。

WordPress Hooks | Info-graphic on how WordPress Hooks work
WordPressフックの仕組みに関するインフォグラフィック

上記のインフォグラフィックに示されているように、アクション関数とフィルター関数は、それぞれのフックを使用してWordPressのコアコードを変更します。

フックはどのように見えますか?

一般的なアクションフックは次の形式を取ります。

 add_action('hook'、'your_custom_function_name'、[priority]、[accepted_pa​​rameters]);
関数your_custom_function_name()
{{
   //カスタムコード
}

フックがフックの名前である場合、 your_custom_function_nameは、カスタムコード、フックの実行方法を示すオプションの優先度パラメーター、追加パラメーターを示す受け入れられたパラメーター、およびカスタムコードを含む関数の名前です。 The 関数呼び出し( add_action())は、コードスニペットの下または上にあります。

フィルタフックの形式は次のとおりです。

 add_filter('filter'、'your_custom_function_name'、'priority'、'accepted_args');
関数your_custom_function_name($ variable)
{{
   //カスタムコード
   戻る;
}

add_filter()は1つです Filterフック関数のうち、 filterは使用するフィルターの名前、 your_custom_function_nameはユーザー定義関数の名前、 priorityパラメーターはフックの実行順序を示し、 accepted_argsは渡される引数を示し、カスタムは必須の戻り値を持つコード。

WordPressと同じように、WooCommerceでも利用できるフックがあります。 これらのフックは、プラグインやテーマを開発し、WooCommerceCheckoutプロセスをカスタマイズするために広く使用されています。
WooCommerceフック:WooCommerceドキュメントのアクションとフィルターを読んで、WooCommerceフックを詳細に理解してください。

デモンストレーション

いくつかのサンプルコードスニペットを使用してフックを理解しましょう。

アクションフックと機能

//アクションフックを追加する
関数my_action_hook(){
echo "<p align='center'>これはアクションフックの例です</p>";
}
add_action('get_header'、'my_action_hook');

上記のコードスニペットでは、「my_action_hook」はカスタム関数の名前であり、「add_action」はアクション関数の1つであり、「get_header」はテンプレートヘッダーをカスタマイズするために使用されます。 指定されたコードスニペットでは、Webサイトのヘッダーセクションに「これはアクションフックのデモです」というテキストを表示しています。

適用されたコードスニペットの変更を示すサンプルスクリーンショットを以下に示します。

WordPress Hooks | Action hook example
アクションフックの例

フィルターフックと機能

//フィルターフックを追加する
add_filter('woocommerce_get_price_html'、'my_filter_hook');
関数my_filter_hook($ price){
'を返す'。$price;
}

上記のコードスニペットでは、「woocommerce_get_price_html」は製品価格を取得するためのWooCommerceフック、「my_filter_hook」はユーザー定義フィルターの名前、「$price」はユーザー定義変数です。 コードスニペットは、製品の価格に「Forjust」というプレフィックスを追加するだけです。

次のスクリーンショットは、コードスニペットがWooCommerceストアにどのように影響するかを示しています。

WordPress Hooks | Filter hook example
フィルターフックの例

これは単純な例であり、フックを使用して達成できることはたくさんあります。

アクションとフィルターは機能の拡張にどのように役立ちますか?

  1. フックを使用する主な利点は、コアのWordPressコードをカスタマイズするのに役立つことです。
  2. コード内で何度も変更されるのではなく、変更が最小限であるため、開発の変更は注意深く監視できます。
  3. 新しいプラグインの開発は、試してテストする方法ではるかに簡単になります。
  4. テーマ開発では、親テーマに影響を与えることなく、子テーマを作成してフックをいじることができます。
  5. シンプルで使いやすいWordPress製品であり、理解しやすい構造と参照用の詳細なドキュメントがあります。
  6. 最も人気のあるWordPresseコマースプラグインであるWooCommerceをサポートします。 WooCommerce価格設定プラグインは、製品価格、価格計算を大幅に変更し、WooCommerceフックを使用して動的な価格設定と割引を提供します。 注文の詳細、製品情報、配送の詳細などは、カスタムフックを使用してタップできます。

結びのコメント

WordPressフックは、プラグインとテーマの開発のための主要なメカニズムです。 これらは、既存のWordPressコードを変更してWebサイトをカスタマイズするために広く使用されています。 フックには多くの利点がありますが、各カスタムフックが一意であり、同じ名前の別のフックと重複しないようにする必要があります。 このような場合でも、必要に応じてフックに優先順位を付けて実行することができます。

WooCommerceストアをカスタマイズするためのヒントについては、 WooCommerceのカスタマイズに関する記事をご覧ください。

または、LearnWooの探索を続けてさらにすばらしい記事を探してください。