【问题标题】:Wordpress syntax error on live host, working fine on local [duplicate]实时主机上的Wordpress语法错误,在本地工作正常[重复]
【发布时间】:2017-11-27 10:30:47
【问题描述】:

过去几天我一直在我的本地主机上从事一个 wordpress 项目。 完成后,我尝试将其上传到我的直播主机上。 但是安装完成后显示语法错误,提示“Parse error: syntax error, unexpected '[' 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 wordpress syntax host


【解决方案1】:

正如评论所述,此错误与 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 中,您不能直接使用函数的返回值。上面的解决方案将返回值存储在一个临时变量中,并在引用其[0] 索引时使用它。

【讨论】:

  • 谢谢,工作得很好。您建议的代码和升级 PHP 版本都运行良好。
  • 很高兴为您提供帮助,欢迎来到 Stack Overflow。如果此答案或任何其他答案解决了您的问题,请将其标记为已接受。
猜你喜欢
  • 1970-01-01
  • 2012-01-29
  • 1970-01-01
  • 1970-01-01
  • 2014-02-21
  • 2015-10-25
  • 2016-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多