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