[英]Using a php function inside a php echo
我正在嘗試設置我的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錯誤。
任何幫助,將不勝感激。
提前致謝
威廉
如果您不需要知道選擇了哪個標頭,請執行以下操作:
echo '<img src="/wp-content/uploads/link-ship-chandlers-banner-' . rand(1,6) . '.jpg">';
使用不止一個;
在一行上是不行的(您實際上是在告訴php解釋器'.jpg">';
是一個獨立的命令-不會執行任何操作)
在這種情況下,在echo
語句中分配變量(即$whatever = 'something
)不會有問題-盡管它實際上也沒有任何用處。 它的作用是創建一個名為$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.";
請注意,上面的示例還顯示了將變量包含在字符串中的另一種方法-使用雙引號,您可以直接在字符串本身內直接寫入變量。 這樣做時,我建議始終使用{}
來包裝變量,盡管在這種情況下並不需要包裝-允許引用更復雜的變量(例如數組元素或對象屬性),這也使整個內容更具可讀性。
其他(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);
實際上這是可行的,但您以;
結尾 。 因此刪除;
並添加一個.
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">';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.