乌徒帮技术范儿WordPressWordPress内核 › home_url与site_url的区别

home_url与site_url的区别

分类:WordPress内核,WordPress多站点

WordPress中不同URL地址函数详解一文中我写到了home_url和site_url,在之前的文章中似乎也讨论过这个问题,但始终没有辨析清楚,今天用一个小短文将这个话题说清楚。

在独立站点中home_urlsite_url相同,他们被存放在_options数据表中,一般当我们更换域名之后,需要进入数据库修改site_url对应的option_value才能正常进入,进入后台之后再修改home_url的值,顾名思议,site_url就是指WordPress系统安装路径,通过这个路径访问的是wordpress系统的index.php文件,当然,一般情况下就是访问首页了。

home_url真正等价的值是get_bloginfo('url'),主要用在前台中打印地址。例如我们在主题中要获得utubon.com/site/这个路径,那么使用echo home('/site/');即可,只有当我们要调用某个放在插件目录下的文件的时候,我们才使用site_url(),但实际上plugin_url()就可以帮上忙,不需要site_url插手。

在特殊情况下home_url和site_url不同。

  1. 使用了多语言插件,规定不同的域名对应不同的路径;
  2. 使用域名绑定插件;
  3. 开启Multisite多站点功能;
  4. 其他add_filter('home_url','')的情况下。

当我们使用一些多语言插件的时候,home_url对应的值会动态变化,例如我们让www指向中文站点,让en.子域名指向英文站点,fr.指向法语站点,那么在你的主题中,虽然都使用了home_url来获得首页地址,但在英文站点中这个首页地址是以en.开头的子域名地址,法语站点中也是同样的道理,这个时候你可以使用site_url来获得中文站点的地址。

在开启了多站点的时候,情况又有所变化,home_url是当前子站点的首页地址,而site_url是整个站点的访问地址。在下一篇文章中,我会提到在多站点中blog和site的区别。

填写个人信息,赶快回复吧!