0

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

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

我清楚地理解它发生的原因,因为所有 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

4 回答 4

1

对每个使用单独的 echo 调用<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如果没有,则需要使用其他方法检查数据是否可用。

于 2013-01-15T14:08:40.897 回答
1

SimeIF语句将起作用:

<?
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>';
?>
于 2013-01-15T14:08:41.187 回答
0

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

于 2013-01-15T14:08:28.573 回答
0

您需要将其拆分为单独的部分,并且应该删除 echo 并将其替换为 php.ini 之外的 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 个条目执行此操作,您就完成了。

于 2013-01-15T14:09:06.233 回答