在WordPress多站点(Multisite)网络中获取当前子站点和主站点的首页地址,可以使用以下方法:
1. 获取当前子站点的首页地址
// 方法1:使用 home_url() 函数(推荐)
$current_site_home = home_url();
// 方法2:组合 get_site_url() 函数
$current_site_home = get_site_url( get_current_blog_id() );
2. 获取主站点(网络主站点)的首页地址
// 方法1:通过指定 blog_id = 1(主站点固定ID)
$main_site_home = get_site_url(1); // 或 get_home_url(1)
// 方法2:使用 network_home_url() 函数(推荐)
$main_site_home = network_home_url();
// 方法3:通过 get_network() 获取
$network = get_network();
$main_site_home = trailingslashit($network->home);
完整示例代码
// 获取当前子站点的首页地址
$current_site_home_url = home_url();
// 获取主站点的首页地址
$main_site_home_url = network_home_url();
// 输出示例
echo "当前子站点首页: " . esc_url($current_site_home_url);
echo "主站点首页: " . esc_url($main_site_home_url);
关键函数说明:
home_url()
返回当前站点的首页地址(自动识别子站点)network_home_url()
始终返回网络主站点的首页地址get_site_url( $blog_id )
获取指定博客ID的站点地址($blog_id=1表示主站点)get_current_blog_id()
获取当前子站点的博客ID
注意事项:
- 在多站点环境下,主站点的博客ID固定为
1 - 所有地址函数会自动处理URL协议(HTTP/HTTPS)
- 推荐使用
esc_url()进行安全输出 - 如果需要在非前端环境(如后台/cron)使用,确保已加载WordPress核心文件
最佳实践:
- 当前子站点 → 用
home_url()- 主站点 → 用
network_home_url()
无需手动处理路径或域名,WordPress会自动处理多站点路径配置(子域名/子目录模式)。

