É como se você estivesse tentando executar:
wp plugin status --path=$(/home/me/domains/example.com/public_html)
porque o que está dentro dos backticks é avaliado.
Aqui está uma boa leitura sobre o uso de backticks no linha de comando.
Deixe-me citar @rozcietrzewiacz :
Backtick não é um sinal de citação , tem um significado especial. Tudo o que você digita entre os backticks é avaliado (executado) pelo shell antes do comando principal [...]
Alternativas:
wp plugin status --path=/home/me/domains/example.com/public_html
wp plugin status --path="/home/me/domains/example.com/public_html"
wp plugin status --path='/home/me/domains/example.com/public_html'
Quando uso a configuração wp-skeleton , tenho que apontar para a pasta wp/
core, não a pasta acima contendo o arquivo wp-config.php
.
Atualização:
Dentro da classe Runner , temos:
/**
* Do WordPress core files exist?
*
* @return bool
*/
private function wp_exists() {
return is_readable( ABSPATH . 'wp-includes/version.php' );
}
e quando definimos ABSPATH
com
--path=/home/me/domains/example.com/public_html/
parece que estamos usando:
/**
* Set WordPress root as a given path.
*
* @param string $path
*/
private static function set_wp_root( $path ) {
define( 'ABSPATH', rtrim( $path, '/' ) . '/' );
WP_CLI::debug( 'ABSPATH defined: ' . ABSPATH, 'bootstrap' );
$_SERVER['DOCUMENT_ROOT'] = realpath( $path );
}
e depois:
is_readable( '/home/me/domains/example.com/public_html/wp-includes/version.php' )
torna-se falso porque com a configuração wp-skeleton , o diretório principal é:
/home/me/domains/example.com/public_html/wp/
Este teste é necessário, mas não é suficiente. Existem outros testes, e. o método Runner::find_wp_root()
.
O motivo pelo qual funciona quando o OP está localizado em:
/home/me/domains/example.com/public_html/
pode ser por causa do Runner::extract_subdir_path()
método que verifica o conteúdo do arquivo index.php
com:
$index_code = file_get_contents( $index_path );
if ( !preg_match(
'|^\s*require\s*\(?\s*(.+?)/wp-blog-header\.php([\'"])|m',
$index_code,
$matches
)
) {
return false;
}
para obter o subdiretório no qual o arquivo wp-blog-header.php
está localizado e configurá-lo como $wp_path
.