WP-CLI无法识别商业插件更新

时间:2015-10-22 作者:NateWr

我遇到了一个以前从未遇到过的问题,即WP-CLI无法识别商业插件的插件更新。

插件更新显示在我的WordPress仪表板中,但正在运行../wp-cli.phar plugin update --all 不会更新它们。如果我跑步../wp-cli.phar plugin list 它不会显示他们有更新。

我已经通过WP-CLI在其他服务器上运行了相同商业插件的更新,没有任何问题。这台服务器上唯一不同的是我没有sudo 访问,所以,正如你所看到的,我正在打电话wp-cli.phar 直接而不是通过wp 命令

WP-CLI正在处理来自的插件更新。此安装没有任何问题。

2 个回复
SO网友:prosti

您遇到的可能是一些网络级问题,或者有人临时删除了下载资源。例如,在更新之前。

您可以从源代码中获得的大部分详细信息https://github.com/wp-cli/wp-cli.

插件更新功能如下所示。

function update( $args, $assoc_args ) {
        if ( isset( $assoc_args[\'version\'] ) ) {
            foreach ( $this->fetcher->get_many( $args ) as $plugin ) {
                $assoc_args[\'force\'] = 1;
                $this->install( array( $plugin->name ), $assoc_args );
            }
        } else {
            parent::update_many( $args, $assoc_args );
        }
    }
当您指定wp plugin update --all 它实际上通过parent::update_many 函数,其中父函数实际上是CommandWithUpgrade

底线,wp-cli 使用以下插件提供的资源:

# Install from a remote zip file
wp plugin install http://s3.amazonaws.com/bucketname/my-plugin.zip?AWSAccessKeyId=123&Expires=456&Signature=abcdef
但是在那里你可以看到你不应该看到的信息。

Sidenote

请注意,某些高级插件不支持通过WP-CLI进行升级。E、 我知道BackupBuddy和Gravity表单工作得很好,但Yoast的插件却不行。这可能会改变。

SO网友:Andy

执行wp cli的用户需要对wp-content 和子目录——如果只有一些插件失败,这些插件的目录可能对该用户是只读的。

有一个bug in wp cli 它不会报告丢失的文件权限,而是报告插件已经更新。

所述症状适用于该情况,因此这将是一些患者的解决方案。