我正在尝试设置我的WordPress网站,以便在帖子/页面分配了特色图像时,此图像将用作页面横幅。但是,如果页面没有特色图像,则必须从六个可用选项中选择一个随机图像。我试过用下面的if语句:
<div id="slider">
<div class="theslide">
<?php
if ( has_post_thumbnail() ) {
the_post_thumbnail();
}
else {
echo '<img src="/wp-content/uploads/link-ship-chandlers-banner-' . $random = rand(1,6); '.jpg">';
}
?>
</div>
</div>
它有效,但随机数函数没有正常关闭,所以代码最终看起来像这样:
<div id="slider">
<div class="theslide">
<img src="/wp-content/uploads/link-ship-chandlers-banner-6 </div>
</div>
</div>
而不是这样:
<div id="slider">
<div class="theslide">
<img src="/wp-content/uploads/link-ship-chandlers-banner-6.jpg">
</div>
</div>
我假设我的语法在回声中使用php是错误的,但我尝试的一切都有相同的问题或导致php错误。
任何帮助都将不胜感激。
提前致谢
威廉
答案 0 :(得分:5)
如果您不需要知道选择了哪个标题,请执行以下操作:
echo '<img src="/wp-content/uploads/link-ship-chandlers-banner-' . rand(1,6) . '.jpg">';
在一行上使用多个;
是不行的(你实际上是在告诉php解释器'.jpg">';
是一个独立的命令 - 它什么都不做)
在$whatever = 'something
语句中分配变量(即echo
)在这种情况下不会成为问题 - 尽管它确实没有任何好处。它的作用是创建一个名为$random
的新变量,您可以在之后使用该变量来找出使用的标题 - 但如果在echo
语句中使用结果将是不可预测的(即在您的情况下变量)将包含[random number].jpg
,而不仅仅是随机数),而是首先将随机数分配给$random
,如下所示:
$random = rand(1,6);
echo '<img src="/wp-content/uploads/link-ship-chandlers-banner-' . $random . '.jpg">';
echo "We are using header {$random}, which was chosen at random.";
请注意,上面的示例还显示了将变量包含在字符串中的另一种方法 - 使用双引号,您只需将变量直接写入字符串本身即可。这样做时,我建议始终使用{}
来包装变量,但在这种情况下不需要 - 这允许引用更复杂的变量(例如数组元素或对象属性),并且它使整个事物也更具可读性。 / p>
其他(IMO不太可读,可能更容易出错)的解决方案包括:
$random = rand(1,6);
echo "<img src=\"/wp-content/uploads/link-ship-chandlers-banner-$random.jpg\">";
echo sprintf('<img src="/wp-content/uploads/link-ship-chandlers-banner-%d.jpg">', $random);
printf('<img src="/wp-content/uploads/link-ship-chandlers-banner-%d.jpg">', $random);
答案 1 :(得分:1)
实际上这可行,但你以;
结束。
因此,删除;
并添加.
echo '<img src="/wp-content/uploads/link-ship-chandlers-banner-' . $random = rand(1,6) . '.jpg">';
这样做或者你不需要设置这个变量
echo '<img src="/wp-content/uploads/link-ship-chandlers-banner-' . rand(1,6) . '.jpg">';