is_network_only_plugin()
云策文档标注
概述
is_network_only_plugin() 函数用于检查插件是否为网络专用插件,通过解析插件头中的“Network: true”标记来实现。该函数在非多站点环境下也能正常工作,并向后兼容“Site Wide Only: true”标记。
关键要点
- 函数检查插件头中的“Network: true”标记,以确定插件是否应仅作为网络范围插件激活。
- 参数 $plugin 是必需的,表示相对于插件目录的插件文件路径。
- 返回布尔值:true 表示插件是网络专用,false 表示不是。
- 函数内部使用 get_plugin_data() 解析插件元数据,并返回 $plugin_data['Network'] 的值。
- 支持向后兼容,也检查“Site Wide Only: true”标记。
- 该函数自 WordPress 3.0.0 版本引入。
代码示例
function is_network_only_plugin( $plugin ) {
$plugin_data = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin );
if ( $plugin_data ) {
return $plugin_data['Network'];
}
return false;
}注意事项
- 函数在非多站点环境下也能工作,但主要用于多站点网络管理。
- 相关函数包括 get_plugin_data()、activate_plugin() 和已弃用的 is_wpmu_sitewide_plugin()。
- 该函数被多个核心类和方法使用,如 WP_REST_Plugins_Controller 和 WP_Plugins_List_Table。
原文内容
Checks for “Network: true” in the plugin header to see if this should be activated only as a network wide plugin. The plugin would also work when Multisite is not enabled.
Description
Checks for “Site Wide Only: true” for backward compatibility.
Parameters
$pluginstringrequired-
Path to the plugin file relative to the plugins directory.
Source
function is_network_only_plugin( $plugin ) {
$plugin_data = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin );
if ( $plugin_data ) {
return $plugin_data['Network'];
}
return false;
}
Changelog
| Version | Description |
|---|---|
| 3.0.0 | Introduced. |