WP cli--路径似乎不起作用

时间:2016-10-27 作者:janw

添加时,WP cli似乎不起作用--path 参数

me@host:~$ wp plugin status --path=`/home/me/domains/example.com/public_html`
-bash: /home/me/domains/example.com/public_html: is a directory
Error: This does not seem to be a WordPress install.
Pass --path=`path/to/wordpress` or run `wp core download`.
如果我cd 指向dir,然后运行该命令,但不使用它的工作路径
我有wp cli 0.25

Update
添加时的额外信息--debug 旗帜

Debug (bootstrap): No readable global config found (0.031s)
Debug (bootstrap): No project config found (0.032s)
Debug (bootstrap): No package autoload found to load. (0.39s)
Debug (bootstrap): ABSPATH defined: /home/me/domains/example.com/public_html/ (0.39s)
有人知道我做错了什么吗?

1 个回复
最合适的回答,由SO网友:birgire 整理而成

就好像你想跑:

wp plugin status --path=$(/home/me/domains/example.com/public_html)
因为要计算backticks get中的内容。

Here\'s 有关在命令行中使用反勾号的详细信息。

让我引用一下@rozcietrzewiacz:

Backtick is not a quotation sign, 它有一个非常特殊的意义。在反勾号之间键入的所有内容都由shell在主命令[…]之前进行计算(执行)

备选方案:

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\'
当我使用wp-skeleton 设置,我必须指向wp/ 核心文件夹,而不是其上方包含wp-config.php 文件

更新:

Runner 我们的课程:

/**
 * Do WordPress core files exist?
 *
 * @return bool
 */
private function wp_exists() {
    return is_readable( ABSPATH . \'wp-includes/version.php\' );
}
当我们开始ABSPATH 具有

--path=/home/me/domains/example.com/public_html/ 
看起来我们正在使用:

/**
 * 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 );
}
然后:

 is_readable( \'/home/me/domains/example.com/public_html/wp-includes/version.php\' )
由于使用wp skeleton设置,核心目录为:

/home/me/domains/example.com/public_html/wp/ 
该测试是必要的,但还不够。还有其他测试,例如Runner::find_wp_root() 方法

当OP位于以下位置时,其工作的原因:

/home/me/domains/example.com/public_html/
可能是因为Runner::extract_subdir_path() 方法,该方法扫描index.php 使用文件:

$index_code = file_get_contents( $index_path );

if ( !preg_match( 
         \'|^\\s*require\\s*\\(?\\s*(.+?)/wp-blog-header\\.php([\\\'"])|m\', 
         $index_code, 
         $matches 
     ) 
) {
        return false;
}
获取wp-blog-header.php 找到文件并将其设置为$wp_path.

相关推荐

WP-CLI插件安装导致PHP致命错误-在不在对象上下文中时使用$This

运行时sudo wp install plugin pluginname --allowroot它会导致错误:PHP致命错误:未捕获错误:在/var/www/html/wp-content/plugins/pluginname/blocks中不在对象上下文中时使用$this。菲律宾比索:89我们有一个自定义插件,其中包含以下内容: class Block{ public static function Run() { add_action(\'e