函数文档

get_site()

💡 云策文档标注

概述

get_site() 函数用于根据站点 ID 或站点对象检索站点数据,支持缓存和过滤器处理。如果未提供参数,则默认使用当前站点。

关键要点

  • 函数接受可选参数 $site,可以是 WP_Site 对象、整数 ID 或 null,默认值为 null。
  • 返回 WP_Site 对象或 null(如果未找到站点)。
  • 内部处理包括:如果 $site 为空,则使用 get_current_blog_id() 获取当前站点 ID;根据 $site 类型实例化 WP_Site 对象。
  • 通过 apply_filters('get_site', $_site) 钩子允许在返回前修改站点数据。

代码示例

function get_site( $site = null ) {
    if ( empty( $site ) ) {
        $site = get_current_blog_id();
    }

    if ( $site instanceof WP_Site ) {
        $_site = $site;
    } elseif ( is_object( $site ) ) {
        $_site = new WP_Site( $site );
    } else {
        $_site = WP_Site::get_instance( $site );
    }

    if ( ! $_site ) {
        return null;
    }

    /**
     * Fires after a site is retrieved.
     *
     * @since 4.6.0
     *
     * @param WP_Site $_site Site data.
     */
    $_site = apply_filters( 'get_site', $_site );

    return $_site;
}

注意事项

  • 该函数在 WordPress 4.6.0 版本中引入。
  • 适用于多站点环境,常用于获取站点对象以进行进一步操作。
  • 相关函数包括 WP_Site::__construct()、WP_Site::get_instance() 和 get_current_blog_id()。

📄 原文内容

Retrieves site data given a site ID or site object.

Description

Site data will be cached and returned after being passed through a filter.
If the provided site is empty, the current site global will be used.

Parameters

$siteWP_Site|int|nulloptional
Site to retrieve. Default is the current site.

Default:null

Return

WP_Site|null The site object or null if not found.

Source

function get_site( $site = null ) {
	if ( empty( $site ) ) {
		$site = get_current_blog_id();
	}

	if ( $site instanceof WP_Site ) {
		$_site = $site;
	} elseif ( is_object( $site ) ) {
		$_site = new WP_Site( $site );
	} else {
		$_site = WP_Site::get_instance( $site );
	}

	if ( ! $_site ) {
		return null;
	}

	/**
	 * Fires after a site is retrieved.
	 *
	 * @since 4.6.0
	 *
	 * @param WP_Site $_site Site data.
	 */
	$_site = apply_filters( 'get_site', $_site );

	return $_site;
}

Hooks

apply_filters( ‘get_site’, WP_Site $_site )

Fires after a site is retrieved.

Changelog

Version Description
4.6.0 Introduced.