实时主机上的 Wordpress 语法错误,在本地工作正常

Wordpress syntax error on live host, working fine on local

过去几天我一直在我的本地主机上开发一个 wordpress 项目。 完成后,我尝试将其上传到我的实时主机上。 但是当安装完成时,它显示语法错误,说“解析错误:语法错误,意外的'[' in ...

代码如下:

function Consulin_header_style() {  
if (Consulin_meta('enable_custom_header_style') == 1):
    $images = Consulin_decode(Consulin_meta( 'header_image'));
    $header_images = '.page-title { background-image: url('. wp_get_attachment_image_src($images[0],'flat-page-title')[0].');}';
else:       
    if ( get_header_image() != "" ) {
        $header_images = '.page-title { background-image: url('. get_header_image().');}';  
    } else {
        $header_images = '.page-title { background-image: url('.CONSULIN_LINK.'images/page-title.jpg) ; }';
    }
endif;
wp_add_inline_style( 'Consulin-style', $header_images );
}

代码的第 4 行“$header_images = ...”就是问题所在。 我对编程的知识绝对是零,所以我很感激这里的帮助。

P.S:它在本地主机上工作得很好。

如评论所述,此错误与 php 版本有关。您的生产环境中有一个较旧的 php 版本。 尽管如此,为了使您的代码向后兼容,您可以将代码更改为如下所示:

// …
if (Consulin_meta('enable_custom_header_style') == 1):
    $images = Consulin_decode(Consulin_meta( 'header_image'));
    $imageData = wp_get_attachment_image_src($images[0],'flat-page-title');
    $header_images = '.page-title { background-image: url('. $imageData[0].');}';
else:
// …

解释:
php 的旧版本中,您不能直接使用函数的 return 值。上面的解决方案将 return 值存储在一个临时变量中,并在引用其 [0] 索引时使用它。