activate_sitewide_plugin()
は、WordPress のマルチサイト環境でネットワーク全体(サイト全体)に対してプラグインを有効化するための関数です。
この関数を使用することで、ネットワーク管理者が個別のサイトごとではなく、すべてのサイトで一括してプラグインを有効化できます。
WordPress 6.1 以降では非推奨の関数であり、代わりに activate_plugin()
を使用することが推奨されています。
機能の説明
この関数は、ネットワーク管理者が指定したプラグインをマルチサイト全体で有効化するために使用します。
一般的に、ネットワーク管理用のプラグインや、全サイトで共通して使用するプラグインを一括有効化する際に利用されます。
- マルチサイト全体で特定のプラグインを有効化する
mu-plugins
ではなく、通常のプラグインをネットワーク全体で有効にする- サイトごとに手動で有効化する手間を省く
シンプルなコード例
以下のコードは、hello.php
プラグインをネットワーク全体で有効化する例です。
if (is_multisite()) {
activate_sitewide_plugin('hello.php');
}
使い方の説明
基本的な使用方法
activate_sitewide_plugin()
の基本的な使い方は以下の通りです。
if (is_multisite() && is_network_admin()) {
activate_sitewide_plugin('plugin-directory/plugin-file.php');
}
activate_sitewide_plugin()
の引数
引数 | 型 | 説明 |
---|---|---|
$plugin | string | プラグインのパス(例: plugin-directory/plugin-file.php ) |
activate_plugin()
を使用した代替方法(推奨)
WordPress 6.1 以降では activate_sitewide_plugin()
は非推奨となっており、activate_plugin()
を使用することが推奨されています。
if (is_multisite() && is_network_admin()) {
activate_plugin('plugin-directory/plugin-file.php', '', true);
}
activate_plugin()
の第3引数に true
を指定することで、ネットワーク全体でプラグインを有効化できます。
一緒に使うことが多い関連タグ
deactivate_plugins()
プラグインを無効化する場合に使用されます。
if (is_multisite() && is_network_admin()) {
deactivate_plugins('plugin-directory/plugin-file.php', true);
}
is_multisite()
現在の WordPress がマルチサイト環境かどうかを判定する関数です。
if (is_multisite()) {
echo 'マルチサイトが有効になっています。';
}
is_network_admin()
現在の管理画面がネットワーク管理画面かどうかを判定します。
if (is_network_admin()) {
echo 'ネットワーク管理画面です。';
}
追加情報で取得したい場合
ネットワークに登録されているプラグインを取得する
get_site_option()
を使用すると、ネットワークで有効化されているプラグインを取得できます。
$active_plugins = get_site_option('active_sitewide_plugins');
print_r($active_plugins);
想定されるトラブル
activate_sitewide_plugin()
が動作しない
activate_sitewide_plugin()
は WordPress 6.1 以降では非推奨のため、activate_plugin()
を使用するis_multisite()
を使ってマルチサイト環境であることを確認するis_network_admin()
を使ってネットワーク管理画面での処理であることを確認する
ネットワーク全体でプラグインが有効化されない
activate_plugin()
の第3引数に true
を設定する
activate_plugin('plugin-directory/plugin-file.php', '', true);
network_activate_plugins()
を使う方法も検討する
Q&A
まとめ
activate_sitewide_plugin()
は、WordPress マルチサイト環境でプラグインをネットワーク全体に対して有効化する関数ですが、WordPress 6.1 以降では非推奨となりました。
代わりに activate_plugin()
を使用し、第3引数に true
を指定することで、同様の動作を実現できます。
ネットワーク管理者がマルチサイト環境でプラグインを一括管理する際に役立つ関数です。
コメント