【问题标题】:Double slash // comments in my php wordpress theme are breaking my site双斜杠//我的 php wordpress 主题中的评论正在破坏我的网站
【发布时间】:2016-08-22 11:49:47
【问题描述】:

好吧,也许我遗漏了什么,但我正在修改一个 wordpress 主题 functions.php 文件。

我正在以

的形式添加cmets
 add_shortcode( 'member', 'member_check_shortcode' );

 function member_check_shortcode( $atts, $content = null ) {

 if ( is_user_logged_in() && !is_null( $content ) && !is_feed() ) { 

# THIS IS A COMMENT

    $content = "logged in as " . $username1;

    return $content;
 }
return '';
}

这破坏了网站,我得到了错误:

解析错误:语法错误,第 558 行 /home/politehr/public_html/wp-content/themes/politehr/functions.php 中的文件意外结束

删除了注释的相同代码:

 add_shortcode( 'member', 'member_check_shortcode' );

 function member_check_shortcode( $atts, $content = null ) {

 if ( is_user_logged_in() && !is_null( $content ) && !is_feed() ) { 

    $content = "logged in as " . $username1;

    return $content;
 }
return '';
}

这不会破坏网站。

使用双斜杠时同样的问题://

如果我在文件底部添加 ?> 也会出现同样的问题(2013 主题中没有)。 (编辑:我的意思是通过添加 ?> 到文件底部并不能解决问题)

是什么导致了这个问题?

编辑:回复评论:

@Ben cmets 格式为 /* comment */ work ok.

这个网站是全新的,我没有激活任何插件。

WP 的标准是二十三主题。

更新:

每个人都说代码以某种方式被缩小或删除了换行符可能是正确的......有人知道如何解决这个问题并让我的记事本++编辑器插入换行符吗?还是 WP 这样做?我正在使用notepad++,然后通过filezilla上传。

解决方案:

EOL conversion in notepad ++

【问题讨论】:

  • 非常有趣。只是出于好奇,如果您有 /* 格式的 cmets,它会起作用吗?例如:/* This is my comment */
  • 您的网站上是否有带有文档记录器的插件?我怀疑它正在将该行读取为损坏的注释命令。
  • 我的猜测缩小?, ?> 关闭 php 标记不是必需的,实际上我个人从不使用它们。您是通过 wordpress 编辑器还是在文件本身中添加此代码?
  • 可以发一下wp主题的链接吗?
  • 好的。我同意@ArtisiticPhoenix 的观点——/* comment */ 有效,并且任何“排除”其余行(# 和 //)的东西并不意味着文件正在以某种方式被缩小,或者您的解释器可能正在期待不同的行尾(UNIX vs Windows)。

标签: php wordpress


【解决方案1】:

很久以前,类似的事情发生在我身上。原因是平台(在我的情况下是 Windows 和 Linux)之间的 EOL 字符不同。 我在本地编辑的代码在上传的时候变成了一行代码,// cmets 把后面的代码打断了。

【讨论】:

  • 我相信这可能是答案,因为即使我的 Notepad++ 显示不同的行号,错误总是显示为“第 30 行”。现在,我该如何解决这个问题?
  • 我的问题是文件是在 Linux 上创建的,然后在 Windows 上编辑,我解决了它在 Windows 上创建一个新文件并将代码粘贴到上面。很奇怪,但对我有用。
  • 另外,如果您可以直接在服务器上编辑文件(通过 cPanel 或 FTP),您可以尝试添加缺失的 EOL。
  • 这是主题函数文件,所以它很大。我将尝试修复并发布我是如何做到的。粘贴到记事本然后回到记事本++ 不起作用。
  • 这是记事本++ - 请参阅stackoverflow.com/questions/16239551/eol-conversion-in-notepad。我将此标记为答案。
猜你喜欢
  • 1970-01-01
  • 2015-12-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 2010-12-07
  • 1970-01-01
  • 1970-01-01
  • 2011-03-15
相关资源
最近更新 更多