【wordpress】プラグインのクラス化
概要
wordpressのプラグインをクラス化する場合に必要な情報です。
プラグインのクラス化
コンストラクタでhookを登録し、処理を実装します。
class XXX_Plugin { // hookを登録します public function __construct() { } } new XXX_Plugin();
action hookへ関数を登録する場合には、呪文が必要になります。
array( $this, メソッド名 )
【参考】 関数リファレンス/add action - WordPress Codex 日本語版
メソッド呼び出しには$thisを付ける必要があります。
【参考】 WordPressプラグインをクラス定義する方法 | Developers.IO
定数の使い方
クラス化しない場合には、defineを使って定数を宣言します。この定数名はグローバルなので名前の生得に気を付ける必要がありました。クラス化するとクラス変数になるため、名前の衝突は気にしなくて済みます。
定数にはクラス変数としてアクセスする必要があります。
class MyClass { const CONSTANT = 'constant value'; function showConstant() { echo self::CONSTANT . "\n"; } }
プラグインの有効化/無効化/削除で処理を実行する
それぞれのhookを実装します。
- register_activation_hook
- register_deactivation_hook
- register_uninstall_hook
【参考】 WordPress でプラグインを無効化したときにオプションを消すには
これらのイベントでデータベースの作成・削除を行うことが多いと思います。
【参考】 WordPressのプラグインでデータベースを作成・削除・アップデートする方法
データベース作成が失敗した場合には、SQLコマンドの大文字化をしてみるよ良いかもしれません。
【参考】 WordPress の dbDelta() でテーブルが作成されない