【问题标题】:WordPress wp-cli generates error: "Call to undefined function getallheaders"WordPress wp-cli 生成错误:“调用未定义函数 getallheaders”
【发布时间】:2015-06-10 23:50:34
【问题描述】:

wp-cli 工具是从命令行执行 WordPress 任务的一种非常方便的方式。但是,如果 WordPress 站点包含调用 PHP getallheaders 方法的插件或主题初始化代码,则 wp-cli 将不起作用。相反,它将返回以下错误以响应每个命令:

致命错误:调用未定义函数 getallheaders()

这发生在 PHP v 5.4.4 上。解决此问题的最佳方法是什么?

【问题讨论】:

    标签: php wordpress undefined-function


    【解决方案1】:

    一些 PHP 函数依赖于底层的服务器应用程序编程接口。 Apache SAPI 当然支持 getallheaders 方法。但有些命令行界面没有。在这种情况下,wp-cli 使用 PHP-FPM(FastCGI 进程管理器)作为 SAPI。但是根据PHP Bug Report 62596,PHP v5.4 中的 PHP-FPM 不支持 getallheaders。因此,当 wp-cli 尝试以 CLI 模式引导 WordPress 站点时,会出现未定义函数错误。

    推荐的解决方案是将这些行添加到 wp-config.php 文件中。 wp-cli 工具定义了一个名为:WP_CLI 的常量。如果设置了此常量,则只需定义 getallheaders 的虚拟版本。这应该不会导致问题,因为 WP 应用程序在 CLI 模式下运行时无论如何都没有获取任何 HTTP 标头。这是一些可以插入到 wp-config.php 中的示例代码

    if ( defined( 'WP_CLI' ) ) {
        if ( !function_exists ( 'getallheaders' ) ) {
            function getallheaders() {return array();}
        }
    }
    

    【讨论】:

    • 个别事件也可以内联处理,其中 getallheaders 函数通过包装调用 if(function_exists('getallheaders'))
    猜你喜欢
    • 1970-01-01
    • 2014-11-13
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    相关资源
    最近更新 更多