我正在尝试编辑位于wp-config.php
的WordPress的MySQL设置。我的数据库名称,密码和用户名与我的网站的实时版本和我的网站的本地版本不同。我正在尝试将此设置为我的本地构建的MySQL设置的一个版本,localhost以及网站的实时版本的不同设置,casestudies.splashworldwide.com。我在下面做了什么有什么问题?我怎么能做到这一点?
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'case-study-wp');
/** MySQL database username */
define('DB_USER', 'root');
/** MySQL database password */
define('DB_PASSWORD', 'root');
/** MySQL hostname */
define('DB_HOST', 'localhost');
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8mb4');
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'casestudies', 'live.domain.url');
/** MySQL database username */
define('DB_USER', 'db_casestudies', 'live.domain.url');
/** MySQL database password */
define('DB_PASSWORD', 'password', 'live.domain.url');
/** MySQL hostname */
define('DB_HOST', 'live.domain.url');
答案 0 :(得分:2)
这个if / else语句对我有用:
if($_SERVER['HTTP_HOST'] === 'live.domain.url') {
define('DB_NAME', 'casestudies');
define('DB_USER', 'db_casestudies');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', '');
}else{
define('DB_NAME', 'case-study-wp');
define('DB_USER', 'root');
define('DB_PASSWORD', 'root');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', '');
}
答案 1 :(得分:0)
您只能在WordPress中配置一个define
变量,并且您将覆盖WordPress提供的策略。
define()
- 如果为单个define变量提供两个值,那么 PHP将永远不允许您以这种方式为单个定义名称定义两个值,并且它将覆盖并且仅采用任何一个人。
因此,建议每个站点只添加一个配置,并在上线时尝试更改站点凭据。
保持这一点:对于本地
/ ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'case-study-wp');
/** MySQL database username */
define('DB_USER', 'root');
/** MySQL database password */
define('DB_PASSWORD', 'root');
/** MySQL hostname */
define('DB_HOST', 'localhost');
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8mb4');
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
对于直播网站,你有这个:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'casestudies');
/** MySQL database username */
define('DB_USER', 'db_casestudies');
/** MySQL database password */
define('DB_PASSWORD', 'password');
/** MySQL hostname */
define('DB_HOST', 'localhost');
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8mb4');
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
答案 2 :(得分:0)
在页面顶部设置一个变量,如:
$live = false;
然后使用if语句定义如下信用:
if($live) {
define('DB_NAME', 'casestudies');
define('DB_USER', 'db_casestudies');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8mb4');
}else{
define('DB_NAME', 'case-study-wp');
define('DB_USER', 'root');
define('DB_PASSWORD', 'root');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', '');
}
然后您只需进行一次更改,在网站上线时将顶部$ live的值更改为TRUE。
答案 3 :(得分:0)
您可以在本地计算机中设置一个Envionment Variable,将其标识为开发计算机(并确保未在生产服务器上设置环境变量)。
然后在wp-config.php中,您可以轻松检查是否存在环境变量并相应地应用不同的配置:
if(getenv('IS_LOCAL')){
define('DB_HOST', 'localhost');
....
}else{
define('DB_HOST, 'mysql.myhost.com');
...
}
我认为这是一种比其他答案更简洁的方法,因为它需要对代码的干扰最小,并允许您通过简单地在那里启用环境变量来轻松调试生产WordPress安装。