函数文档

get_main_network_id()

💡 云策文档标注

概述

get_main_network_id() 函数用于获取 WordPress 多站点网络中的主网络 ID。它根据是否启用多站点、常量定义或当前网络状态返回相应的整数 ID。

关键要点

  • 函数返回主网络的整数 ID,用于多站点环境中的网络标识。
  • 如果未启用多站点(is_multisite() 返回 false),则默认返回 1。
  • 支持通过 PRIMARY_NETWORK_ID 常量自定义主网络 ID。
  • 包含 get_main_network_id 过滤器钩子,允许开发者修改返回的主网络 ID。
  • 函数内部逻辑包括检查当前网络 ID 或查询网络列表来确定主网络。

代码示例

function get_main_network_id() {
    if ( ! is_multisite() ) {
        return 1;
    }

    $current_network = get_network();

    if ( defined( 'PRIMARY_NETWORK_ID' ) ) {
        $main_network_id = PRIMARY_NETWORK_ID;
    } elseif ( isset( $current_network->id ) && 1 === (int) $current_network->id ) {
        $main_network_id = 1;
    } else {
        $_networks       = get_networks(
            array(
                'fields' => 'ids',
                'number' => 1,
            )
        );
        $main_network_id = array_shift( $_networks );
    }

    return (int) apply_filters( 'get_main_network_id', $main_network_id );
}

注意事项

  • 该函数仅在 WordPress 4.3.0 及以上版本可用,引入于多站点功能的增强。
  • 在多站点环境中,正确获取主网络 ID 对于网络级操作(如升级或元数据支持)至关重要。
  • 开发者可以通过 apply_filters 钩子自定义主网络 ID 的逻辑,以适应特定配置。

📄 原文内容

Gets the main network ID.

Return

int The ID of the main network.

Source

function get_main_network_id() {
	if ( ! is_multisite() ) {
		return 1;
	}

	$current_network = get_network();

	if ( defined( 'PRIMARY_NETWORK_ID' ) ) {
		$main_network_id = PRIMARY_NETWORK_ID;
	} elseif ( isset( $current_network->id ) && 1 === (int) $current_network->id ) {
		// If the current network has an ID of 1, assume it is the main network.
		$main_network_id = 1;
	} else {
		$_networks       = get_networks(
			array(
				'fields' => 'ids',
				'number' => 1,
			)
		);
		$main_network_id = array_shift( $_networks );
	}

	/**
	 * Filters the main network ID.
	 *
	 * @since 4.3.0
	 *
	 * @param int $main_network_id The ID of the main network.
	 */
	return (int) apply_filters( 'get_main_network_id', $main_network_id );
}

Hooks

apply_filters( ‘get_main_network_id’, int $main_network_id )

Filters the main network ID.

Changelog

Version Description
4.3.0 Introduced.