特徴
- 常にオンで、管理者によって有効にする必要がなく、ユーザーが誤って無効にすることもできません。
- mu-plugins ディレクトリにファイルをアップロードするだけで有効にでき、ログインする必要はありません。
- PHP によって読み込まれ、通常のプラグインの前にアルファベット順に処理されるため、mu-plugin に追加された API フックは、グローバル名前空間でフックされた関数を実行する他のすべてのプラグインに適用されます。
注意点
多くの特別なケースに適しているにもかかわらず、mu-plugins システムは常に理想的ではなく、特定の状況では不適切にするいくつかの欠点があります。以下は、留意すべき重要な注意点です:
- 必須使用ディレクトリ内のプラグインは、更新通知に表示されず、プラグインページでの更新状況も表示されないため、自分で更新について学び、実行する責任があります。
- 必須使用プラグインフォルダに追加されたプラグインでは、アクティベーションフックが実行されません。これらのフックは、多くのプラグインがプラグインを初期設定するためのインストールコードや、プラグインが削除されたときにクリーンアップするためのアンインストールコードを実行するために使用されます。これらのフックに依存するプラグインは、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」として改名されたものには、管理者内からプラグインを管理する機能があります)。
/ mu-plugins / を処理するコードは、03/07/09 に この変更セット としてメインの WordPress コードに統合され、wpmu コードベースが最初に統合される 10 ヶ月前に、すべての WP サイトが自動読み込みプラグインを利用できるようになりました。MU/マルチサイトが有効であるかどうかにかかわらず、この機能は状況に応じてすべてのタイプの WP インストールに役立ちます。
このプロセスで「mu プラグイン」という名前は誤称となり、マルチサイトインストールにのみ適用されるものではなく、「MU」ももはや複数のブログを持つ WP インストールを指すために使用されていなかったためです。それにもかかわらず、この名前は保持され、「必須使用プラグイン」を意味するように再解釈されました。つまり、これらは常に使用される必要があるプラグインであり、したがって、wp-admin のプラグインペインの設定に関係なく、すべてのサイトで自動的に読み込まれます。
したがって、「Must-Use」は実質的に Backronym であり、PHP のように(元々は「Personal Home Page」を意味していましたが、後に「PHP Hypertext Preprocessor」を意味するように再解釈され、これも Recursive Acronym です)。
ソースコード
get_mu_plugins()
は wp-admin/includes/plugin.php にあります。wp_get_mu_plugins()
は wp-includes/load.php にあります。
変更履歴
- 2022-09-11: Must Use Plugins からの元のコンテンツ。マイナーな追加とコピー編集。