2011-01-11 3 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>'; 
} 
} 

을 그리고 내 자바 스크립트입니다 :

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

나는 시도 :

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

결과 : 전체 숨기기에 클래스 숨기기가 추가되었습니다.

코딩 방식이 아직 새롭기 때문에 다른 방식으로는 이해할 수 없습니다.

들으

+0

실제로 숨겨진 상자를 기본값으로 설정할 수 있으며 실제로 이미지가있는 경우 루프가 완료된 후에 무시 CSS를 내 보내기 만하면됩니다. 당신은 이미 모든 정보를 서버 측에서 가지고 있으며, 그것을 활용할 수도 있습니다. 물론 자바 스크립트를 사용하는 사람들은 어떤 그림도 볼 수 없지만 그게 문제입니다. –

답변

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

관련 문제