暇人の英語雑記ブログ

WordPress の do_action のコードをクラス内に記述するスマートな使用方法

2020.03.02WordPress
wordpress-code-sample.jpg

WordPress は Web開発で主流となっている MVCモデルではなくリニア(一直線)な構造の各所にフィルタやアクションといったフックをかけていくという方法を取っています。

このような特殊なストラクチャから特にクラスなどを利用せずにコードを記述することができ、かなりレガシーな書き方でもサイト作成が容易にできる仕様になっています。

ここではあえて「クラスを通して do_action を利用する」という方法を、ごくごく簡単に説明したいと思います。

male-thinking
add_action() や add_filter() は利用するが do_action() は使用方法がよく分からない。

↑このようなあなたもぜひ参考にしてみてください。

1分で読める超簡単な記事です。

まずはじめに以下のようなクラスがあると仮定します。

あなたは my_funciton を、例えば single.php で利用する際にどのようは方法を取るでしょうか?

一番ありがちなのは以下のような手順でしょう。

または一度のリクエスト内で複数回使用したい場合は、以下のようにグローバル変数を使う人もいるでしょう。

方法としては間違っていませんが WordPress にはフックという便利な機能が備わっているので、このような方法を取る必要性は全くありません。

以下でOKです。

こうすることで my_function を実行したいところで毎回クラスを初期化しなくてもいいですし、グローバル変数に頼る必要性もなくなります。

またクラス内に閉じ込めておくことで my_function 内でクラス変数が使用できるというメリットも生まれます。

引数を与えたい場合は単純に以下のようにするだけです。

apply_filters() も同様の書き方ができます。

参考にしてみてくださいね♪

author