プラグインで依存関係を実現する方法

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

こんにちは、WPホームページ研究所の運営サポートチーム(@WP_LABO)です。

特定プラグインと紐づけた独自プラグインの作り方をカンタンにご紹介いたします。

プラグインで依存関係を実現する方法

もし何かしらのプラグインと連動するプラグインが必要な場面があったら条件が必要ですよね。

A. 特定のプラグインが動いていなければメニューを出さない
B. 特定のプラグインが無効化されたらメッセージを表示する
C. 特定のプラグインが持っている機能を判定して処理を行う

同じように見える条件分岐をいかにミスなく実装していけるかが重要となります。

特定のプラグインが動いていなければメニューを出さない

管理画面内でプラグインが動作しているかは有効状態を判定すればOKです。

特定のプラグインが有効化されているか判断する方法

ただ、プラグインによっては上記では動かないケースもあります。状況に応じて使い分けましょう。

特定のプラグインが無効化されたらメッセージを表示する

プラグインの無効状態を判定するには上記と同じく「プラグインが有効化済みチェックする方法」で行います。

if (!is_plugin_active('plugin-directory/plugin-file.php')) {
	//無効状態なら実行する内容
}

もちろん、通常通り「if」側で有効を判定して「else」側で無効を確認してもOKです。

特定のプラグインが持っている機能を判定して処理を行う

プラグイン側に実装されている関数が存在しているかの確認は「function_exists」関数で行えます。参考までに「wp-admin/includes/plugin.php」の読込みが必要かどうかは実行する場所によって変わってきます。

if(!function_exists('is_plugin_active')){
	require_once(ABSPATH . 'wp-admin/includes/plugin.php');
}

たとえば「Contact Form 7」であれば下記で判定できます。

if (is_plugin_active('contact-form-7/wp-contact-form-7.php')) {
	echo "Contact Form 7は有効化中です";
} else {
	echo "Contact Form 7は有効状態ではありません";	
}

BuddyPressなど機能が豊富なプラグインでは「bp_is_active」という関数で特定の機能が有効になっているかを確認できます。実行タイミングによって未定義(undefined)のエラーが出るので注意しましょう。

if (bp_is_active('groups')) {
	// もしグループ機能が有効なら実行する
}

かなりさまざまな判定方法があるので状況に応じて使い分けてください。

まとめ

本日は「特定プラグインの関連機能を追加する方法」を解説させていただきました。

状況に応じての判定は実行するタイミングも要確認です。プラグインによっても判定方法が異なるパターンもあるので実装時は色々な方法を試しましょう。何度も動作チェックを行うのがおすすめです。

プラグイン開発やカスタマイズ時はぜひご参考ください。

最新式の無料プラグインを事前公開

WordPressは公式サイトに登録済みのプラグインだけで全機能を補足しきれません。当サイトでは使いやすさを追求した魅惑的なプラグインを無料でダウンロードいただけます。運営ホームページのマーケティング力をさらに高めるチャンスです。まずは無料でDLしてお試しくださいませ。
改良されたプラグインを確認する