WordPress的链接使用的是绝对URL,这样做的好处是避免了因为路径处理错误而出现死链接。但是路径信息是直接写在数据库里面的,从开发环境迁移到正式环境或者更换域名的时候需要修改数据库里面的域名信息才可以。一个WordPress站点绑定多个域名的时候也会遇到问题,即便如此,我们还是可以通过一些方法来绑定多个域名的。
绑定多个域名的前提
在WordPress中,同一个设置,常量的优先级高于在数据库里面定义的变量。WordPress为我们提供了“WP_HOME“和“WP_SITEURL“这两个常量。
这两个常量对应的是后台设置中的以下两个选项。
而获取这两个选项的方法分别是:
1 2 | $home = get_home_url(); $siteurl = get_site_url(); |
WordPress绑定多个域名的方法
根据WordPress的优先级,我们可以通过下面的代码覆盖数据库里面的这两个设置。
1 2 3 4 | $home = 'http://'.$_SERVER['HTTP_HOST']; #获取当前访问的域名 $siteurl = 'http://'.$_SERVER['HTTP_HOST']; define('WP_HOME', $home); define('WP_SITEURL', $siteurl); |
以上代码可以写到WordPress的wp-config文件或当前主题的function.php中。
获取首页URL和站点URL
需要注意的是,一旦设置了这两个值,我们就需要通过获取常量值来获取首页URL和站点URL了,通过上面的方法获取的数据库里面的地址有可能是不正确的。
1 2 | $home = WP_HOME; $siteurl = WP_SITEURL; |
在绑定多个域名和或经常需要修改域名的时候,这种方法是非常好用的,如果网站只有一个域名或者偶尔更换一下域名,还是直接修改数据库里面的地址比较好一点。