我写了一个插件,它成功地在我的本地主机上运行。但是当我安装它并想要激活它时,我的服务器失败了。
无法激活插件,因为它触发了致命错误。
解析错误:语法错误,第 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
}