Как заставить wp-cli работать в файле wp-config с условными выражениями?

Я тестирую с помощью wp-cli, чтобы обновить мой prod,dev,staging,test,а также update сайты для моего домена.

В моемwp-config файл имеет условные выражения, то я получаю следующую ошибку:

PHP Notice:  Undefined index: HTTP_HOST in phar:///usr/local/bin/wp/php/WP_CLI/Runner.php(1070) : eval()'d code on line 22
PHP Notice:  Undefined index: HTTP_HOST in phar:///usr/local/bin/wp/php/WP_CLI/Runner.php(1070) : eval()'d code on line 24
PHP Notice:  Undefined index: HTTP_HOST in phar:///usr/local/bin/wp/php/WP_CLI/Runner.php(1070) : eval()'d code on line 26
PHP Notice:  Undefined index: HTTP_HOST in phar:///usr/local/bin/wp/php/WP_CLI/Runner.php(1070) : eval()'d code on line 28
PHP Notice:  Undefined variable: db_name in phar:///usr/local/bin/wp/php/WP_CLI/Runner.php(1070) : eval()'d code on line 34
Error: Can’t select database. We were able to connect to the database server (which means your username and password is okay) but not able to select the `` database.

Вот как я кодирую wp-config.php файл который работает !!!

if ($_SERVER["HTTP_HOST"] === 'example.com') {
$db_name = 'example';
}else if ($_SERVER["HTTP_HOST"] === 'dev.example.com') {
$db_name = 'example_dev';
}else if ($_SERVER["HTTP_HOST"] === 'staging.example.com'){
$db_name = 'example_staging';
}else if ($_SERVER["HTTP_HOST"] === 'update.example.com') {
$db_name = 'example_update';
}

define('DB_NAME', $db_name);

Есть ли способ заставить wp-cli работать с этим файлом?

0

Решение

$_SERVER["HTTP_HOST"]

Не существует, когда вы используете PHP из командной строки. Лучшим вариантом будет указать случай, когда вы используете файл в командной строке, например:

if (php_sapi_name() == "cli") {
//set db_name when in cli
} else {
//set db_name as per host
if ($_SERVER["HTTP_HOST"] === 'example.com') {
$db_name = 'example';
}else if ($_SERVER["HTTP_HOST"] === 'dev.example.com') {
$db_name = 'example_dev';
}else if ($_SERVER["HTTP_HOST"] === 'staging.example.com'){
$db_name = 'example_staging';
}else if ($_SERVER["HTTP_HOST"] === 'update.example.com') {
$db_name = 'example_update';
}
}

Так как я не слишком уверен, что вы хотите, чтобы $ db_name был, когда вы находитесь в wp-cli, я не указывал его в первом наборе скобок.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]