我创建了一个localhost
mac上wordpress网站的版本。我现在想通过WLAN网络在各种设备上测试它。所以,根据这里的其他帖子,我在我的wp配置中更改了这个。php
define(\'WP_HOME\',\'http://localhost:8888\');
define(\'WP_SITEURL\',\'http://localhost:8888\');
至
define(\'WP_HOME\',\'http://192.168.0.19:8888\');
define(\'WP_SITEURL\',\'http://192.168.0.19:8888\');
只要加载站点、css等,它就可以工作,但不会加载任何图像(除了css中设置为背景的图像)。db必须工作正常,因为菜单和所有页面和链接都工作正常,只是没有图像。
所以我在数据库中搜索了“localhost”,在wp_posts
列下的表格guid
. 我已经检查了wordpress设置>常规,wordpress地址(URL)和网站地址(URL)都设置为http://192.168.0.19:8888
有什么想法吗?
最合适的回答,由SO网友:Tim Malone 整理而成
不幸的是,当用Wordpress更改网站的URL时,你还需要在数据库中做一个相当大的查找/替换工作:这是因为添加到帖子中的任何链接或图像(可能还有许多其他东西)都具有绝对的(http://localhost:8888/wp-content/uploads/etc.) 而不是相对链接(/wp-content/uploads/etc)。
因此,嵌入到帖子中的所有图像仍在尝试从本地主机加载,而本地主机除了在本地计算机上之外不存在。
有一种快速而肮脏的方法可以解决此问题:将数据库导出到SQL文件中,制作副本,在文本编辑器中打开它,然后在上执行查找/替换http://localhost:8888
将其替换为http://192.168.0.19:8888
. 然后在现有数据库上再次导入它(首先确保您仍然拥有现有数据库的导出副本!)
此选项速度很快,在大多数情况下都可以快速“检查”事情是否正常,但很可能会杀死一些数据,因此您需要在完成后重新导入该数据库导出副本,以便恢复所有内容。
如果您想真正做到这一点(当您实时部署站点时,您当然需要这样做),那么您需要对数据库进行序列化搜索/替换。Wordpress将其一些设置(例如,包括小部件内容)存储在序列化字符串中,这基本上意味着如果您手动更改这些字符串中的内容,而内容的长度与之前不完全相同,则内容将丢失。
This is a great script 这解决了这个问题,并且在大多数情况下都有效。设置也不太困难。另一种选择是wp-cli 如果你打算经常这样做的话,这会更容易,但首先要做的是更多的设置和学习工作。