wordpress的安装地址和站点地址
wordpress在安装时,会根据访问触发安装程序的域名自动确认站点地址和wordpress地址,在我们安装好了wordpress之后,可以进入后台-设置-常规中看到这两个数据:
如上图所示:
- wordpress地址对应数据库的数据名称是 siteurl 代表着wordpress的安装地址,也就是我们wordpress后台的地址
- 站点地址对应的数据库名称是 home 代表着前端网页访问的地址。
这两个数据值在绝大多数情况下是保持一致的,但也有一些特殊的情况,两个数据所填写的域名是不一致的,一旦这两个值出现不一致的情况,将会带来一些问题。
我们在帮助客户检测时发现了一些问题,并进行了处理,一下是当wordpress的 站点地址和wp地址不一致时会出现的问题以及解决方法。
使用古藤堡区块编辑器时出现“发布失败,您可能已经掉线”,以及古藤堡所依赖的REST API无法连接
古藤堡编辑器是依赖wordpress的 REST API 进行编辑和提交数据的,当我们的wordpress网站配置 站点地址和wp地址不一致的时候,REST API会出现无法访问的情况。
这是由于REST API的链接是连接的站点地址,wp-json的指向会出现2条,这样会引起冲突,从而引发 :“发布失败,您可能已经掉线”的提示
这样让我们无法保存编辑好的文章和页面。
此外, REST API无法访问还会带来样板和可重用模块的读取失败,样板功能是当前古藤堡编辑器所提供的最强力的排版方式,而可重用区块则是编辑公共公用区域所以来的重要功能。
这些功能缺失,会导致完全无法使用古藤堡编辑器进行编辑的操作。
解决方法
在你的主题function.php
文件中加入如下代码即可完全解决此问题,这段代码会判断 wordpress的站点地址和wp地址不一致时,将REST API 的指向强制到wordpress地址上。
add_filter('rest_url', 'themepark_home_url_as_api_url');
function themepark_home_url_as_api_url($url) {
$url = str_replace(home_url(),site_url() , $url);
return $url;
}