我收到此语法错误:解析错误:语法错误,意外T_STRING,期待','或';'在this page上的第18行。
我认为这可能是问题的“首次发布”。有什么建议吗?
谢谢 - 塔拉
<?php
$days = round((date('U') - get_the_time('U')) / (60*60*24));
if ($days==0) {
echo "Published today |";
}
elseif ($days==1) {
echo "Published yesterday |";
}
else {
echo "First published " the_time('F - j - Y') " |";
}
?>
Last updated at <?php the_time('g:i a'); ?> on <?php the_time('l, F jS, Y') ?> by <?php the_author(); ?>
答案 0 :(得分:6)
你的问题是:
echo "First published " the_time('F - j - Y') " |";
其他答案表明连接都是错误的。 WordPress中的the_time()将回显,因此您需要在多个调用中将其拆分:
echo "First published ";
the_time('F - j - Y');
echo " |";
或者,连接但使用get_the_time():
echo "First published " . get_the_time('F - j - Y') . " |";
答案 1 :(得分:1)
而不是
echo "First published " the_time('F - j - Y') " |";
尝试
echo "First published " . get_the_time('F - j - Y') . " |";
通过使用get_the_time()代替the_time(),您可以将其与字符串的其余部分连接起来,而不必将其分成多行。在像the_time()这样的Wordpress函数回显结果时,通常会有一个“get”版本返回值而不回显它。
答案 2 :(得分:1)
如果这确实来自Wordpress的代码,并且the_time()自己回响,是的,那么你需要将回声放在不同的行上:
echo "First string";
the_time();
echo "second string";
旁注:
当解析器抱怨您缺少分号(;)时,我发现有两个非常常见的原因:
1:你在这里犯的错误;解析器在线上找到并且非法字符。在字符串文字之后立即进行函数调用(没有行结束符,如分号,或者像它们之间的运算符)将导致解析器输出错误,然后解析器会猜测您可能忘记终止该行这里。
2:你实际上忘了终止这条线。但是然后解析器会抱怨它找到非法字符的行,通常,你会想要在上面一行的末尾添加分号:
myFunction() // <-- Oops, missing a semi-colon!
myOtherFunction();
答案 3 :(得分:0)
您需要使用concat运算符(点)。
echo "First published " . the_time('F - j - Y') . " |";
答案 4 :(得分:-1)
有两种方法可以解决这个问题。
第一种方法与其他人一样:字符串连接:
echo "First published " . the_time('F - j - Y') . " |";
另一种方法是在每个字符串之间添加逗号。这有效的原因是因为echo
需要多个参数。
echo "First published ", the_time('F - j - Y'), " |";
我不知道它是否比字符串连接更快。