2013-09-26 123 views
0

需要一些帮助,试图将if语句添加到以下代码。如何添加if语句

// 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); 

我想这样做,是这样的:

如果有电子邮件显示它是这样的...

<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>'; 
if ($email) { 
    '<i class="ss-mail"></i><h6>Email</h6><p>'; 
    $tpl = str_replace('%%EMAIL%%', $email, $tpl); 
    '</p>'; 
} 

感谢

+1

你必须使用'echo'打印字符串 – Joren

+0

什么是'回声get_post_meta的输出($后> ID, 'resource_email',真)'? –

+3

您的示例if()语句将始终成功,因为您事先将'$ email'设置为非错误。 –

回答

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

似乎并不是我在这里需要的。不过谢谢 –