テーマのカスタマイズや自作プラグインの制作過程で、他のプラグインの機能について指示をする機会があった場合に、依存するプラグインを停止したらエラーが表示されてサイトがストップしまうのを防ぐ方法として使える、指定したプラグインが有効化されているかどうかを判定する関数をメモとして公開しておきます。
以下がコードサンプルです。
if (is_plugin_active('プラグインフォルダ/プラグインのメインファイル.php')) {
指定したプラグインが有効化されている場合の記述
}else{
指定したプラグインが有効化されていない場合の記述
}
たったこれだけでプラグインの有効/無効での条件分岐ができるんですね。
ただし、次項のようなエラーが出る場合があるので注意してください。
Uncaught Error: Call to undefined function is_plugin_active() inエラーが出るときは
プラグインファイルエディターなどでコードを記述して保存した時に、以下のようなエラーが表示されることがあります。
Uncaught Error: Call to undefined function is_plugin_active() in...
これはエラーメッセージに書いてある通り、「is_plugin_active()」という関数が定義されていません(使用できる状態になっていません)というもので、以下の行を追加することでエラーがなくなり、機能するようになります。
require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
このコード自体は、サイト内で有効化されているプラグイン(またはテーマ)のどこかに1回記述されていれば、「is_plugin_active()」関数が利用できるようになりますが、例えばAというプラグインで上記コードが入っていて、Bというプラグインで「is_plugin_active()」関数を使用している状態で、Aプラグインを停止すると、「is_plugin_active()」が使えなくなり、エラーで転ぶことがあるので、必ず「is_plugin_active()」関数を使うプラグインやテーマごとにこのコードを挿入することをおすすめします
コメントを残す