试图在循环中仅在三分之一的帖子上显示广告。是否一直收到错误500?

时间:2013-02-16 作者:Elliot Ellis

我认为这只是一个PHP代码错误,但由于某种原因,下面的代码无法工作,它不断给我带来内部服务器错误500

<?php
  $ajfl_adLuck = rand(1,3);
  if ($ajfl_adLuck == 2) {
    echo "<div id=\\"sidebar-awesome-container\\">";
    echo "<div id=\\"sidebar-awesome-wrapper\\">";
    echo "<img src=\\"" . bloginfo(\'template_url\'); . "/img/sample-ad-side.png\\" alt=\\"Sample Advertisement\\">";
    echo "</div>";
    echo "</div>";
  } else {
    echo "";
  }
?>
基本上,我的网站略有不同,侧边栏位于WordPress循环中,因为它显示的不是类别和元数据的列表,而是帖子的信息。我想在侧边栏下显示一则广告,但不是在每一篇帖子上,比如说,只在其中三分之一的帖子上显示。

我想知道为什么我当前的代码不能工作。PHP非常陌生,所以我猜这是一个语法错误,但我已经研究了一个多小时,仍然找不到修复方法。

感谢您的帮助,无论是修复还是更好的方法
谢谢。

3 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

echo "<img src=\\"" . bloginfo(\'template_url\'); . "/img/sample-ad-side.png\\" alt=\\"Sample Advertisement\\">";
您添加了一个分号,分号之后是一个新语句。. "img/ etc不是有效的PHP,因此会出错。

此外,bloginfo不会返回它的值,它会打印它,因此您需要更改它以获取\\u bloginfo。

我建议您查看基本的PHP错误处理,以便查看错误日志。我还建议您使用适当的代码编辑器,以亮红色突出显示语法错误。Sublimitext/Komodo/PHPStorm/Netbeans等都可以做到这一点。语法错误是一个已解决的问题,您不必查找它们,它们应该由您的代码编辑器向您指出

SO网友:Sunyatasattva

这不是Wordpress的问题,但我认为这是sintax的错误

  echo "<img src=\\"" . bloginfo(\'template_url\'); . "/img/sample-ad-side.png\\" alt=\\"Sample Advertisement\\">";

 echo "<img src=\\"" . bloginfo(\'template_url\') . "/img/sample-ad-side.png\\" alt=\\"Sample Advertisement\\">";
如果串联字符串,则不使用分号。如果我敢的话,最好将字符串保存到变量中,然后echo 变量本身;为了获得最佳可读性,请通过使用.=.

SO网友:Michael

见孙雅塔萨娃的答案;

此外,在字符串串联中,需要使用get_bloginfo()

结束