WordPressのマルチサイトネットワークにインストールされたプラグインについて説明すると、ネットワーク全体で使用できるように有効化できるプラグインもあれば、特定の単一サイトでのみ有効化できるプラグインもあります。
![图片[1]-检查WordPress插件在多站点网络中的激活状态指南-光子波动网 | 专业WordPress修复服务,全球范围,快速响应](https://www.361sale.com/wp-content/uploads/2024/03/image-119-1024x576.png)
ネットワーク対応プラグイン:
![图片[2]-检查WordPress插件在多站点网络中的激活状态指南-光子波动网 | 专业WordPress修复服务,全球范围,快速响应](https://www.361sale.com/wp-content/uploads/2024/03/image-117.png)
同じプラグインを特定のサイトで有効化します:
![图片[3]-检查WordPress插件在多站点网络中的激活状态指南-光子波动网 | 专业WordPress修复服务,全球范围,快速响应](https://www.361sale.com/wp-content/uploads/2024/03/image-118.png)
この仕組みを理解するのはそれほど難しいことではありませんが、プラグインがネットワーク全体で有効になっているのか、それとも特定のサイトだけで有効になっているのかをコードでチェックしようとすると、問題にぶつかることがあります。
これを実現するにはさまざまな方法があり、それぞれに特徴があります。
is_plugin_active_for_network()
プラグインがネットワーク全体で有効化されている場合、この関数はtrue(真)を返します。例えば、サイト1でこの関数を使用し、プラグインがサイト1のみで有効化され、ネットワーク全体で有効化されるように設定されていない場合、この関数はfalse(偽)を返します。
if( is_plugin_active_for_network( 'woocommerce/woocommerce.php' ) ) { 。
// WooCommerce はネットワークに対応しています。
} else {
// WooCommerceはネットワークに接続していません。
}
is_plugin_active()
この関数は2つの仕事をするので便利です:
- プラグインが現在使用しているサイトでのみ有効かどうかをチェックします。
- また、プラグインがネットワーク上でアクティブに設定されているかどうかもチェックします。
これら2つの条件のうち、少なくとも1つが成立していれば真(true)を返します。
if( is_plugin_active( 'woocommerce/woocommerce.php')){。
// WooCommerceはこの特定のサイトで有効になっているか、ネットワークで有効になっています。
) { // WooCommerceはこの特定のサイトで有効になっているか、ネットワークが有効になっています。
この機能は、マルチサイト以外のネットワーク環境でも安全ですのでご安心ください。
プラグインが特定のサイトでのみ有効かどうかをチェックします。
この機能はWordPressコアでは利用できないので、以下のカスタムコードを用意しました:
if( in_array( $plugin, (array) get_option( 'active_plugins', array() ) ) { 。
}
マルチサイト・ネットワーク内の特定のサイトをチェックすることもできますが、その際は $blog_id
歌で応える $plugin
変数。
switch_to_blog( $blog_id ).
if( in_array( $plugin, (array) get_option( 'active_plugins', array() ) ) {.
}
restore_current_blog() ;
特定のプラグイン(ここではWooCommerce)がどのサイトで有効になっているかを確認します:
$sites = get_sites();
foreach( $sites as $site ) { { $site->blog_id ); { $sites->blog_id
switch_to_blog( $site->blog_id );
if( in_array( 'woocommerce/woocommerce.php', (array) get_option( 'active_plugins', array() ) ) { )
echo "WooCommerceは{$site->blogname}で有効です;
}
restore_current_blog(); }.
概要
つまりis_plugin_active()
それなのにis_plugin_active_for_network()
WordPressは、どちらの場合もサイトオプションで有効化されているプラグインをチェックします:
![图片[4]-检查WordPress插件在多站点网络中的激活状态指南-光子波动网 | 专业WordPress修复服务,全球范围,快速响应](https://www.361sale.com/wp-content/uploads/2024/03/image-120-1024x281.png)
これらのオプションは自動的にロードされるので、データベースを使いすぎる心配はありません。is_plugin_active()
グローバル変数からしかチェックしません。
データベースのオプション値は、実際には以下のようなシリアライズされた配列です:
![图片[5]-检查WordPress插件在多站点网络中的激活状态指南-光子波动网 | 专业WordPress修复服务,全球范围,快速响应](https://www.361sale.com/wp-content/uploads/2024/03/image-121.png)
お問い合わせ |
---|
記事が読めない?無料でお答えします!個人サイト、中小企業サイトのための無料ヘルプ! |
① 電話:020-2206-9892 |
② QQ咨询:1025174874 |
三 Eメール:info@361sale.com |
④ 勤務時間: 月~金、9:30~18:30、祝日休み |
この記事へのリンクhttps://www.361sale.com/ja/6236この記事は著作権で保護されており、必ず帰属表示を付けて複製してください。
コメントなし