我如何在客户端的同时处理数据库?

时间:2015-02-03 作者:James George Dunn

我想知道当客户端从外部将内容放入数据库时,最好的方法是在本地处理数据库。

我最初的想法是远程连接到数据库,但sitter设置为开发网站,而不是http://localhost, 这就是我使用的。它连接良好,但当我浏览网站时,链接会发生变化,以匹配开发服务器的链接。

1 个回复
SO网友:Joey Yax

您需要对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)。

我是凭记忆背诵的,所以希望我没有遗漏任何东西。:-)

结束

相关推荐

How many databases do I need?

我被要求为其他人建立另一个网站。最终,我会把它交给他们。我将在本地开发它,然后现场使用,然后移交完全控制权。同时,我需要一个数据库供WP使用。我是将新网站连接到我个人网站已有的现有数据库中,还是每个网站都有一个数据库?我不想把我的数据库和别人的数据库一起导出。