如果满足该div中的条件,如何使用echo来回显div

时间:2013-01-15 14:03:49

标签: php wordpress echo

如果用户在wordpress的用户帐户字段中提供了社交网络用户名,我会使用一个简单的php脚本来显示社交图标。

问题是即使没有提供网络用户名,也会显示所有网络图标。

我清楚地理解它发生的原因,因为所有的div都包含在相同的echo输出中,但如果单独满足每个div的条件,则无法真正弄清楚如何在该echo中使用isset输出。

我希望我对问题的解释不会太混乱

以下是我的脚本

的示例
    echo '
<div class="author_networks">
<div class="gplus"><a class="soc_btn gplus_img" href="https://plus.google.com/'. get_the_author_meta('google_plus', $authorID) .'" rel="me" target="_blank"></a></div>
<div class="facebook"><a class="soc_btn facebook_img" href="http://www.facebook.com/'. get_the_author_meta('facebook', $authorID) .'" target="_blank"></a></div>
<div class="twitter"><a class="soc_btn twitter_img" href="http://twitter.com/'. get_the_author_meta('twitter', $authorID) .'" target="_blank"></a></div>
<div class="linkedin"><a class="soc_btn linkedin_img" href="http://www.linkedin.com/company/'. get_the_author_meta('linkedin', $authorID) .'" target="_blank"></a></div>
</div>
</div>'

提前感谢您的建议

4 个答案:

答案 0 :(得分:1)

为每个<div>

使用单独的回音调用
echo '<div class="author_networks">';
if(isset(get_the_author_meta('google_plus', $authorID))) {
 echo '<div class="gplus">...</div>';
}
if(isset(get_the_author_meta('facebook', $authorID))) {
 echo '<div class="facebook">...</div>';
}
// and so on
echo '</div>';

假设当没有可用的作者数据时get_the_author_meta()返回null。如果没有,您需要使用另一种方法来检查数据是否可用。

答案 1 :(得分:1)

Sime IF语句将起作用:

<?
echo '<div class="author_networks">';
if ($condition == 'gplus') {
    echo '<div class="gplus"><a class="soc_btn gplus_img" href="https://plus.google.com/' . get_the_author_meta('google_plus', $authorID) . '" rel="me" target="_blank"></a></div>';
} elseif ($condition == 'facebook') {
    echo '<div class="facebook"><a class="soc_btn facebook_img" href="http://www.facebook.com/' . get_the_author_meta('facebook', $authorID) . '" target="_blank"></a></div>';
} elseif ($condition == 'twitter') {
    echo '<div class="twitter"><a class="soc_btn twitter_img" href="http://twitter.com/' . get_the_author_meta('twitter', $authorID) . '" target="_blank"></a></div>';
} elseif ($condition == 'linkedin') {
    echo '<div class="linkedin"><a class="soc_btn linkedin_img" href="http://www.linkedin.com/company/' . get_the_author_meta('linkedin', $authorID) . '" target="_blank"></a></div>';
}
echo '</div>';
?>

答案 2 :(得分:0)

我认为你必须为每个图标单独使用echo

答案 3 :(得分:0)

你需要在单独的部分中打破它,你应该删除回声并用PHP外部的html替换它。像这样:

?><div class="author_networks"><?php
if (/*google plus check*/) { ?><div class="gplus"><a class="soc_btn gplus_img" href="https://plus.google.com/<?php echo get_the_author_meta('google_plus', $authorID); ?>" rel="me" target="_blank"></a></div>

为所有4-5个条目执行此操作,您就完成了。