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
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. |