Must Use プラグイン

Must-use プラグイン (必須プラグイン、mu-plugins) は、コンテンツフォルダー内の特別なディレクトリにインストールされ、インストールされたすべてのサイトで自動的に有効になるプラグインです。

must-use プラグインは、管理画面のプラグインページにあるデフォルトのプラグイン一覧には表示されず、特別な Must-Use セクションに表示されます。この種類のプラグインは、通常の方法では無効化できず、無効化したい場合は wp-content/mu-plugins という must-use ディレクトリからファイルを削除する必要があります。

デフォルトのディレクトリを手動で変更するには、wp-config.phpWPMU_PLUGIN_DIRWPMU_PLUGIN_URL を定義します。

機能

  • 常時有効になっています。管理者による有効化の必要がなく、ユーザーが誤って無効化することもありません。
  • ログインしなくても、mu-plugins ディレクトリにファイルをアップロードするだけで有効にすることができます。
  • PHP によってアルファベット順に、通常のプラグインよりも先に読み込まれます。つまり、mu-plugin で追加された API フックは、他のすべてのプラグインがグローバルな名前空間でフックされた関数を実行している場合でも適用されることを意味します。

トップ ↑

注意点

mu-plugins システムは多くの特殊なケースでは適していますが、常に理想的というわけではなく、一定の状況では適切とはいえない欠点がいくつかあります。以下に、覚えておくべき重要な注意点の一部を挙げます。

  • must-use ディレクトリに追加されたプラグインは、アップデート通知にも表示されず、プラグインページにもアップデート状況が表示されないため、ご自身の責任でアップデートを取得し、実行してください。
  • must-use プラグインフォルダーに追加されたプラグインでは、アクティベーションフックが実行されません。これらのフックは、プラグインの初期設定を行うインストールコードや、プラグインが削除されたときの処理を行うアンインストールコードを実行するために、多くのプラグインで使用されています。これらのフックに依存しているプラグインは、mu-plugins フォルダーでは機能しない可能性があります。そのため、すべてのプラグインは、本番サイトにデプロイする前に mu-plugins ディレクトリで注意深くテストする必要があります。
  • WordPress は mu-plugins ディレクトリ内の PHP ファイルのみを検索し、(通常のプラグインとは異なり) サブディレクトリ内のファイルは検索しません。そのため、mu-plugins ディレクトリ内にプロキシの PHP ローダーファイルを作成する必要があるかもしれません。
<?php // mu-plugins/load.php
require WPMU_PLUGIN_DIR.'/my-plugin/my-plugin.php';

トップ ↑

歴史的背景と名称

‘mu-plugins’ ディレクトリは、もともと WPMU (マルチユーザー用 WordPress) によって実装されたもので、サイト管理者がサイトネットワーク内のすべてのブログでプラグインをデフォルトで有効化する簡単な方法を提供するためのものでした。当時のマルチユーザー専用のコードでは、サイト管理セクションを使用してこの効果を実現する方法が提供されていなかったため、この機能が必要とされていました (現在、名前が変更された「WordPress マルチサイト」では、管理画面からプラグインを管理する機能が備わっています)。

/mu-plugins/ を処理するコードはこのチェンジセットで、2009年3月7日に WordPress のメインコードにマージされました。これは wpmu コードベースが最初にマージされるよりも丸10ヶ月前のことで、マルチサイト機能を有効化しているかどうかにかかわらず、すべての WordPress サイトが自動読み込みプラグインを利用できるようになりました。この機能は、状況に応じてあらゆるタイプの WordPress インストールに役立つため、これは理にかなっています。

この過程で、「mu プラグイン」という名称は、マルチサイトのインストールだけに適用されるものではなく、また、複数のブログを持つ WordPress のインストールを指す “MU” も使われなくなっていたため、誤った名称になっていました。これにもかかわらずこの名前は維持され、「必ず使用するプラグイン」という意味に再解釈されました。つまり、これらは常に使用しなければならないプラグインであり、したがって、wp-admin のプラグイン画面での設定にかかわらず、すべてのサイトで自動的に読まれます。

したがって、”Must-Use” という名称は事実上のバクロニム (逆頭辞後) です。例えば、”PHP” はもともとは “Personal Home Page” を意味していましたが、後に “PHP Hypertext Preprocessor” を意味すると再解釈されて再帰的頭字語となりましたが、このようなものです。

トップ ↑

ソースコード

この記事は役に立ちましたか ? どうすればさらに改善できますか ?