register_uninstall_hook でのクラスメソッド呼び出し

自作プラグインをクラス化したら、正常に動作していたはずの register_uninstall_hook – WordPress Codex  でエラーが発生してしまいました

これは、プラグイン削除時の動作なので気づきにくい症状です
たまたま、wp-config.php の define(‘WP_DEBUG’, true); をデバッグモードにした時に発覚しました

スクリーンショット_040513_053642_PM

WordPress Ver3.1 以降は、クラスメソッドを static にしないといけないようです

このような記述でエラーとなりました

register_uninstall_hook(__FILE__,  array(&$this, ‘my_uninstall_hook’));

コールバックする my_uninstall_hook クラスメソッドを static にします

フックする側では、このように static メソッドとしてクラス名を記述します

register_uninstall_hook(__FILE__, ‘クラス名::my_uninstall_hook’);

あるいは、次のような記述でも良いようです

register_uninstall_hook(__FILE__, array(‘クラス名’, ‘my_uninstall_hook’));


クラス化する前に
register_uninstall_hook | firegoby

このあたりの記事を参考にして register_uninstall_hook 関数を使用していたのですが、情報が少し古かったのか、クラスにした場合のことまでは記述されていなかったので今回記事にしてみました (^^)


まとめ記事紹介

search star user home refresh tag chevron-left chevron-right exclamation-triangle calendar comment folder thumb-tack navicon angle-double-up angle-double-down angle-up angle-down quote-left googleplus facebook instagram twitter rss