WordPress开发笔记

WordPress多站点首页地址获取方法

在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);

关键函数说明:

  1. home_url()
    返回当前站点的首页地址(自动识别子站点)
  2. network_home_url()
    始终返回网络主站点的首页地址
  3. get_site_url( $blog_id )
    获取指定博客ID的站点地址($blog_id=1 表示主站点)
  4. get_current_blog_id()
    获取当前子站点的博客ID

注意事项:

  • 在多站点环境下,主站点的博客ID固定为 1
  • 所有地址函数会自动处理URL协议(HTTP/HTTPS)
  • 推荐使用 esc_url() 进行安全输出
  • 如果需要在非前端环境(如后台/cron)使用,确保已加载WordPress核心文件

最佳实践:

  • 当前子站点 → 用 home_url()
  • 主站点 → 用 network_home_url()
    无需手动处理路径或域名,WordPress会自动处理多站点路径配置(子域名/子目录模式)。