アクションフックのすすめ

WordPressには、「フック」という便利な仕組みがあります。
この仕組みにより、Wordpress自体の処理フローの中で独自の処理を追加実行させたり、本来出力されるデータを書き換えたりすることができます。

「フック」には、以下の2種類が存在しています。

  • フィルターフック
    主に出力されるデータ(記事タイトル、本文 等)を独自に書き換える際に使用。
  • アクションフック
    既存の処理の中で独自の処理を追加実行することができる。

特にアクションフックはWordpressをカスタマイズする上で、欠かすことができない仕組みと言えます。

アクションフックとは?

前述の通り、アクションフック により、Wordpress自体の既存処理フローの中で、独自の処理を追加実行することが可能ですが、好きな箇所、好きなタイミングで実行できるわけではなく、実際にはfunction関数中の do_action() 、または do_action_ref_array() の箇所に限定されます。

do_action()do_action_ref_array() は処理自体は同一ですが、後者の方は事前にある配列をそのまま引数として使用する場合や、扱う引数の数が多い時などに使われます。

厳密に言えば、独自の処理を do_action() や do_action_ref_array() をトリガーにして追加実行させる仕組み、それが アクションフック です。

どういう時に使うか?

アクションフック を利用する場面は様々で

※格納場所:Wordpressのルートディレクトリ直下
wp-blog-header.php から読み込まれると同時に、以下の処理が行われる。

  • WordPressルートディレクトリのシステムパスを定数化(ABSPATH) – 21行目
  • wp-config.php を読み込み – 50行目

wp-config.php

※格納場所:Wordpressのルートディレクトリ直下
基本的に、Wordpressと連携させるデータベースのログイン情報等を記載しているスクリプト。
データベース名、接続ユーザー名、接続パスワード等は全て定数化され、Wordpressがデータベースに接続する度に定数として使用される。
各種定数化の最後に、以下の処理が行われる。

  • wp-settings.php を読み込み – 93行目

wp-settings.php

※格納場所:Wordpressのルートディレクトリ直下
wp-config.php から読み込まれると同時に、以下の処理が行われる。

  • コア部品となる各種スクリプトファイルを読み込む
  • 環境チェック
  • 各設定値等を定数として定義
  • データベースとの接続
  • 基本処理関数を実行
  • 各種プラグインのスクリプトファイルを読み込む
  • テーマフォルダ内の「functions.php」を読み込む

ここまでが、ページを出力する前段階になる。

基本関数 wp() の実行

wp-load.php の読み込みから、一連のスクリプトファイルが読み込まれる (データベースとの接続、プラグインやテーマファイルとの連携が完了) ことで実行可能となる。
この処理が実行されることで、アクセスされたURLを元にした検索条件設定、データベースからの必要データ取得が行われる。
同時に、生成された検索条件、投稿データ等はグローバル変数化され、以下、テーマテンプレートファイルからの参照が可能になる。
($wp_query、$post など)

template-loader.php

※格納場所:/Wordpressのルートディレクトリ/wp-includes
アクセスされたURLを元に、指定テーマ内を参照し、最適なテンプレートファイルを読み込むことでページを出力する。
テンプレートはページ種別や条件等で優先順位が異なる。

 

カテゴリ:

タグ:

投稿日

 投稿者

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です