服务器上的WordPress插件错误


wordpress plugin error on the server

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

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

解析错误:语法错误,第 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){     

您拥有的内联函数称为匿名函数或闭包。闭包在 5.3 版本中只成为 PHP 的一部分,所以如果你的 servier 运行的是 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
}