2011-01-11 43 views
0

我正在尋找在wordpress循環中創建條件。如果沒有圖像,然後圖像框(.thumbHome {顯示:無})如果循環中沒有圖像,則隱藏Div

這是我function.php

function getThumbImages($postId) { 
$iPostID = get_the_ID(); 
$arrImages =& get_children('post_type=attachment&post_mime_type=image&post_parent=' . $iPostID); 
if($arrImages) { 
    $arrKeys = array_keys($arrImages); 
    $iNum = $arrKeys[0]; 
    $sThumbUrl = wp_get_attachment_thumb_url($iNum, $something); 
    $sImgString = '<img src="' . $sThumbUrl . '" alt="thumb Image" title="thumb Image" />'; 
echo $sImgString;} 
else { 
echo '<script language="javascript">noImage()</script>'; 
} 
} 

而且我的javascript:

window.onload = noImage(); 
function noImage(){ 
document.getElementByClassName('.thumbHome').css.display = 'none'; 
} 

我想:

window.onload = noImage(); 
function noImage(){ 
$('.thumbHome').addClass('hide'); 
} 

RESULT:class hide added to all loop

我不能以另一種方式來看待它,因爲im仍然是編碼新手。

THX

+0

如果實際上有任何圖像,您可以將該框默認爲隱藏,並在循環完成後簡單地發出覆蓋css。你已經獲得了服務器端的所有信息,不妨使用它。當然,使用javascript的人不會看到任何圖片,但這是他們的問題。 – 2011-01-11 21:02:44

回答

1

那麼首先,你不想呼籲window.onload這些功能。這將立即將所有類別實例.thumbHome隱藏,無需任何條件。

下面是解決此問題的一種非常簡單的方法。有可能更復雜的方式,但這很好。

在您的主循環中,根據圖像ID爲每個.thumbHome div添加一個唯一的ID。因此,像:

echo '<div class="thumbHome" id="thumb-' . $iNum . '"> ... </div>'; 
// or you could you use the post ID, doesn't matter, as long as you are consistent 

那麼你的其他條件(對於是否有縮略圖)可改爲:

else { 
    echo '<script type="text/javascript">noImage("#thumb-' . $iNum . '")</script>'; 
} 

和你的js函數可以是:

function noImage(var){ 
    $(var).hide(); 
} 

這不是有必要做到這一點的最佳方式,這只是你現在所處的情況的最佳方式。

+0

它仍然顯示一個空框。這裏是截圖。 http://dl.dropbox.com/u/2527203/Screen%20shot%202011-01-14%20at%2014%20January%202011%3E%3E10.36.47%20AM.png – user571830 2011-01-13 21:37:35