1

我写了一个插件,它在我的本地主机上成功运行。但是当我安装它时,我的服务器并想要激活它失败了。

插件无法激活,因为它触发了致命错误。

解析错误:语法错误,第 22 行 /home/ozcanco/public_html/said/wp-content/plugins/Archive/my-plugin.php 中的意外 T_FUNCTION

但是当我在本地运行这个插件时,它成功运行。顺便说一下,我的 wordpress 版本是相同的,在本地和服务器上。这是怎么发生的?

第22行是这样的:

   add_action('loop_start', function($query) use ($allContent){     
4

1 回答 1

0

您拥有的内联函数称为匿名函数或闭包。闭包仅在 5.3 版本中成为 PHP 的一部分,因此如果您的服务器运行 5.2 或更低版本,它将不支持它们。

http://php.net/manual/en/functions.anonymous.php

如果升级服务器不是一个选项,那么正如评论中 krike 建议的那样,您可以使用回调函数:

add_action('loop_start', 'loopStartCallback');

function loopStartCallback($query) {
    global $allContent;
    // body of the closure goes here
}
于 2013-01-24T11:38:54.560 回答