我想在传输之前使用live DB运行我的测试站点来测试一些东西。我知道我可以复制数据库,但我必须随着现场的进展不断更新。
我跟着this Wordpress instruction 使用db。php,我把它放在两个网站的wp内容文件夹中,但它似乎不起作用。
有人能帮忙吗?网站是http://routemaster.lkWIP站点是rmdemo。bazcreative。com公司
数据库。php具有以下代码:
<?php
// paste this in a (new) file, wp-content/db.php
add_filter ( \'pre_option_home\', \'test_localhosts\' );
add_filter ( \'pre_option_siteurl\', \'test_localhosts\' );
function test_localhosts( ) {
if (strcasecmp($_SERVER[\'REQUEST_URI\'], \'rmdemo.bazcreative.com\') == 0
|| strcasecmp(substr($_SERVER[\'REQUEST_URI\'], 0, 5), \'rmdemo.bazcreative.com\') == 0) {
return "http://rmdemo.bazcreative.com";
}
else return false; // act as normal; will pull main site info from db
}
SO网友:Jonathan Hodgson
让两个站点运行同一个数据库是不好的做法。如果要在其中一个上执行插件/核心更新,这一点尤其正确。
使用诸如migrate db之类的工具会更好(https://wordpress.org/plugins/wp-migrate-db/) 执行迁移。
migrate db的维护人员也在研究Mergebot(https://deliciousbrains.com/mergebot-beta-update-plugin-integrations-query-selection/) 虽然目前仍处于测试阶段,但它应该可以安全地保持数据库同步。
否则,您应该查看您的if语句:
我想你可能想问一下$_SERVER[\'HTTP_HOST\']
而不是$_SERVER[\'REQUEST_URI\']
. 请求uri将为您提供域后的url位。Http主机将为您提供发出请求的域(和子域)。
您最终会得到:
<?php
// paste this in a (new) file, wp-content/db.php
add_filter ( \'pre_option_home\', \'test_localhosts\' );
add_filter ( \'pre_option_siteurl\', \'test_localhosts\' );
function test_localhosts( ) {
if (strcasecmp($_SERVER[\'HTTP_HOST\'], \'rmdemo.bazcreative.com\') == 0) {
return "http://rmdemo.bazcreative.com";
}
else return false; // act as normal; will pull main site info from db
}
有一件事我一定要检查,那就是很容易忘记:
确保已清除浏览器缓存。浏览器喜欢将重定向缓存太长时间。如果您在实现此功能之前访问了“dev”站点,您将被重定向到实时站点