函数文档

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.

Return

bool True if plugin is network only, false otherwise.

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.