2013-09-26 3 views
0

if 문을 다음 코드에 추가하는 데 도움이 필요합니다. 이메일이처럼 표시가 있으면 이메일, 디스플레이 아무것도가 아니라면 ...if 문을 추가하는 방법

<p><i class="icon"></i><a href="mailto:' . get_post_meta($post->ID, 'resource_email', true) . '">'. get_post_meta($post->ID, 'resource_email', true) .'</a><p> 

: 내가하고 싶은 무엇

// determine email 
$email = '<a href="mailto:' . get_post_meta($post->ID, 'resource_email', true) . '">'. get_post_meta($post->ID, 'resource_email', true) .'</a>'; 
$tpl = str_replace('%%EMAIL%%', $email, $tpl); 

이있다. 이 작업을 수행하는 방법을

확실하지, 나는하지 않습니다,하지만이 시도 :-)

// determine email 
$email = '<a href="mailto:' . get_post_meta($post->ID, 'resource_email', true) . '">'. get_post_meta($post->ID, 'resource_email', true) .'</a>'; 
if ($email) { 
    '<i class="ss-mail"></i><h6>Email</h6><p>'; 
    $tpl = str_replace('%%EMAIL%%', $email, $tpl); 
    '</p>'; 
} 

감사

+1

사용을 해'echo''(사실, $ 포스트> ID 'resource_email') 문자열 – Joren

+0

'에코 get_post_meta의 출력은 무엇인가를 인쇄하려면? –

+3

당신의 예제 if() 문은 항상 성공할 것입니다. 왜냐하면 당신은'$ email'을 즉시 false가 아닌 것으로 설정하고 있기 때문입니다. –

답변

1

당신은 단지 get_post_meta 이후 if 문 (에 포장 할 수 있습니다) 실패했습니다 전자 메일 주소가 없으면 결과를 반환하십시오. 그래서 :

if(get_post_meta($post->ID, 'resource_email',true)){ 
.../your existing code ... 
} 
+0

기술적으로 더 정확하려면 단일 post_meta 값을 반환 할 때 빈 문자열을 반환합니다. 빈 문자열은 if() 문에서 false로 평가됩니다. – wunderdojo

0
$resource_email = get_post_meta($post->ID, 'resource_email', true); 
if(!empty($resource_email)) { 
    $email = '<a href="mailto:' . $resource_email . '">'. $resource_email .'</a>'; 
    $tpl = str_replace('%%EMAIL%%', $email, $tpl); 
    echo '<i class="ss-mail"></i><h6>Email</h6><p>'; 
    echo $tpl; 
    echo '</p>'; 
} else { 
    $email = ' '; 
    $tpl = str_replace('%%EMAIL%%', $email, $tpl); 
    echo $tpl; 
} 
+0

감사합니다. 그러나이 작업을 수행 할 때 전자 메일이 없으면 여전히 %% EMAIL %% –

+0

이 위의 대답을 업데이트했습니다 !! http://meta.stackexchange.com/a/5235 그것이 당신을 위해 작동하는 경우. – Subharanjan

+0

내가 여기서 필요한 것 같지 않습니다. 그래도 고마워 –

관련 문제