您需要对wp配置进行一些修改。php。
添加以下内容,以便WordPress根据环境自动选择域:
define( \'WP_SITEURL\', \'http://\' . $_SERVER[\'SERVER_NAME\'] );
define( \'WP_HOME\', \'http://\' . $_SERVER[\'SERVER_NAME\'] );
现在,我们需要让WordPress根据您所在的环境确定要使用的主机,从而使其更具可移植性。有几种方法可以做到这一点,但基本上您所需要做的就是添加一个条件语句,以便WP知道您是否处于开发或生产环境中。我通常使用*。我的开发环境的开发域,因此。。。
define( \'DB_NAME\', \'\' );
define( \'DB_USER\', \'\' );
define( \'DB_PASSWORD\', \'\' );
define( \'DB_HOST\', ( strpos( $_SERVER[\'SERVER_NAME\'], \'.dev\' ) === false ? \'localhost\' : \'db.domain.com\' ) );
define( \'DB_CHARSET\', \'utf8\' );
define( \'DB_COLLATE\', \'\' );
现在我们可以连接到数据库了,我们有了一个网站的工作版本,但有一个警告:页面/帖子中的绝对链接。使用使用WP功能确定地址的链接(如nav、,
bloginfo()
, 等等),但是,任何插入到帖子中的图像都将具有制作网站的完整URL。从技术上讲,你可以到此为止,但如果你想同时使用这两个版本的网站,还有一些工作要做。
首先,将以下内容添加到“wp config”。php`:
define( \'WP_CONTENT_DIR\', dirname( __FILE__ ) . \'/wp-content\' );
define( \'WP_CONTENT_URL\', \'/wp-content\' );
这告诉WP使用相对图像路径而不是绝对图像路径。例如:
/wp-content/uploads/image.png
而不是
http://domain.com/wp-content/uploads/image.png
但此更改不具有追溯性,因此您需要在数据库上运行查找和替换来捕获这些更改。但要小心数据库中的序列化数组-标准的查找和替换无法工作,因此最好使用以下内容:https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
我们仍然有绝对URL的页面/帖子中存储的链接,除非您在插入时特别小心,不要包含域。您可以使用前面提到的搜索和替换工具a删除已存储的。
最后,我们需要使文件在环境之间可移植。你可以使用rsync
或钩入add_attachment
筛选以将dev中的上载发送到生产或CDN(如果您正在使用CDN)。
我是凭记忆背诵的,所以希望我没有遗漏任何东西。:-)