如果用户在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>'
提前感谢您的建议
答案 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个条目执行此操作,您就完成了。