WordPressフックシステムの詳細な説明:アクション、フィルター、フック
WordPressは、実行またはPHPの解釈のさまざまな段階でフック(フック)を介してコアコンポーネント、テーマ、プラグインがイベントをトリガーするイベント駆動型アーキテクチャパターンを使用します。フックは主にアクションとフィルターに分割されます。アクションは、プロセス実行のさまざまな段階で機能を追加または削除するために使用されます。
WordPressのフックシステムにより、プラットフォームのスケーラビリティが向上し、コアコード、プラグイン、テーマに機能を追加、削除、変更できるため、開発者はコアソースコードを変更せずにプラグインとテーマを拡張できます。
フックシステムは、WordPress実行のさまざまな段階でトリガーされ、通常はdo_actions()
およびapply_filters()
PHP関数で使用されます。これらのイベントは、add_action()
およびadd_filter()
でサブスクライブまたはマウントできます。この記事では、例を介してアクションとフィルターがどのように使用されるかを示します。
フック、アクション、フィルターの意味
フックは、PHPの実行または解釈のさまざまな段階でのWordPressコア、テーマ、プラグインによってトリガーされたイベントを指します。これらのイベントがトリガーされると、これらのイベントに取り付けられたすべての機能および/またはクラスメソッドが正しい順序で実行されます。
アクションとフィルターは、プロセス実行のさまざまな段階で機能を追加または削除するために、2種類のフックです。
WordPress Hook Systemの重要性WordPressフックシステムの重要性は、そのスケーラビリティにあります。機能の追加と削除、およびWordPressコア、プラグイン、およびテーマの機能の実装を調整/変更できます。
コアソースコードを編集せずに他の開発者がそれらを改善および拡張できるようにする拡張可能なプラグインとテーマを作成します。
たとえば、私の2チェックアウトWooCommerce Payment Gatewayプラグインには、チェックアウトページにサポートされているクレジットカードの種類を示すアイコンは含まれていません。これは不要だと思うからです。ただし、ユーザーのニーズが異なる場合に備えてフィルターを追加しました。
アイコンが含まれるというカスタマーサポートのリクエストを受け取りました。フィルターにフックしてアイコンを含むコードスニペットをクライアントに提供することができます。
WordPressの実行のさまざまな段階では、多数のイベントがトリガーされ、および
PHP関数が通常使用されます。これらのイベントは、およびdo_actions()
でサブスクライブまたはマウントできます。 apply_filters()
add_action()
以下は、プラグイン内のアクションの例です。このアクションは、ProfilEpressユーザー登録プラグインにユーザーを正常に登録した後に発生します。
add_filter()
このアクションに添付されたすべての関数は、WordPressの実行中に処理されます。
the_content
は、各投稿のコンテンツをフィルタリングするフィルターフックの例です。
/** * Fires after a user registration is completed. * * @param int $form_id ID of the registration form. * @param mixed $user_data array of registered user info. * @param int $user_id ID of the registered user. */ do_action( 'pp_after_registration', $form_id, $user_data, $user_id );
注:
では、最初のパラメーターはアクションフックの名前であり、その後のパラメーターはアクション関数に接続するために使用できる変数です。 do_actions()
、最初のパラメーターはフィルターフックの名前であり、2番目のパラメーターは、機能が変更またはアプリケーションのためにフィルターに接続されているデータまたは値です。後続のパラメーターは、フィルターに取り付けるために使用できる変数/値です。 apply_filters()
アクションフックの例
例#1:
ProfilEpressプラグインのアクションを使用して、機能を実装したいと仮定して、ユーザーは登録直後にウェルカムメッセージを受け取ります(仮想SMSサービスドリオを介して)。私たちの関数フックは次のようになります:pp_after_registration
/** * Filter the post content. * * @since 0.71 * * @param string $content Content of the current post. */ $content = apply_filters( 'the_content', $content );
の3番目のパラメーターはフックの優先度であり、add_action
アクションに添付された関数の実行順序を指定します。空白のままにすると、デフォルトは10になります。 4番目のパラメーターは、関数フックが受け入れるパラメーターの数を指定します。空白のままになると、デフォルトは1になります。 pp_after_registration
例#2:
WordPressには、次のアクションフックが含まれています:およびwp_head
。これは、それぞれフロントエンドのヘッドタグとボディタグの終了の前に発射されます。 wp_footer
(以下のコンテンツは元のテキストに似ています。複製を避けるために、アクションフックとフィルターフックの残りの例と結論はここで省略されています)
(長さの理由により、FAQの部分も省略されています)
以上がWordPressフックシステムを分類しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。