我为我正在制作的模板创建了一个配置文件。我试图让社交图标仅在变量设置时出现,所以如果他们没有输入该图标的信息,则不会在图标行中显示。
我知道我可以使用if语句执行此操作,但我不想制作12个if语句(每个图标一个)
这是图标的配置部分
/* ==========================================================================
Social Media Acct. Information Below
========================================================================== */
/*** INLCUDE FULL URL FOR ALL FIELDS ***/
// Facebook
define('FACEBOOK_URL', '#');
// Twitter
define('TWITTER_URL', '#');
// Linkedin
define('LINKEDIN_URL', '#');
// Pinterest
define('PINTEREST_URL', '#');
// Google Plus
define('GOOGLE_URL', '#');
// Dribbble
define('DRIBBBLE_URL', '#');
// Youtube
define('YOUTUBE_URL', '#');
// Vimeo
define('VIMEO_URL', '#');
// Flickr
define('FLICKR_URL', '#');
// Yelp
define('YELP_URL', '#');
// Stumble Upon
define('STUMBLE_URL', '#');
//Specify icon color below (white or dark)
define('ICON_COLOR', 'white');
,这是每个图标的html
<div id="social_icons">
<a href="#"><div class="icon_container" id="facebook_icon"></div></a>
<a href="#"><div class="icon_container" id="twitter_icon"></div></a>
<a href="#"><div class="icon_container" id="linkedin_icon"></div></a>
<a href="#"><div class="icon_container" id="google_icon"></div></a>
<a href="#"><div class="icon_container" id="pinterest_icon"></div></a>
<a href="#"><div class="icon_container" id="dribble_icon"></div></a>
<a href="#"><div class="icon_container" id="youtube_icon"></div></a>
<a href="#"><div class="icon_container" id="vimeo_icon"></div></a>
<a href="#"><div class="icon_container" id="flickr_icon"></div></a>
<a href="#"><div class="icon_container" id="yelp_icon"></div></a>
<a href="#"><div class="icon_container" id="stumbleupon_icon"></div></a>
</div>
我希望能够在不在每个链接周围放置if语句的情况下完成此操作。有办法吗?谢谢!
编辑以下是基于@ thtjuan答案的新代码片段,如果这有助于回答完整的问题。
PHP
$social_links = array(
'facebook' => '#',
'twitter' => '#',
'linkedin' => '#',
'google' => '#',
'pinterest' => '#',
'dribbble' => '#',
'youtube' => '#',
'vimeo' => '#',
'flickr' => '#',
'yelp' => '#',
'stumbleupon' => '#'
);
HTML
<div id="social_icons">
<?php foreach( $social_links as $icon => $url ): ?>
<a href="<?php echo $url; ?>"><div class="icon_container" id="<?php echo $icon?>_icon"></div></a>
<?php endforeach;?>
</div>
答案 0 :(得分:2)
创建一个链接数组,然后使用for循环将它们全部打印出来:
e.g。
$links = array(
'facebook' => '#',
'twitter' => '#'
);
然后:
<div id="social">
<?php foreach( $links as $icon => $url ): ?>
<a href="<?php echo $url; ?>"><div class="icon_container" id="<?php echo $icon?>_icon"></div></a>
<?php endforeach;?>
</div>
请注意,任何不在$ links数组中的链接都不会显示在您的页面上。如果您必须拥有数组中的所有条目,那么您可以通过执行以下操作来保留没有隐藏URL的条目:
<div id="social">
<?php foreach( $links as $icon => $url ): ?>
<?php if( strlen($url) && $url != '#' ): ?>
<a href="<?php echo $url; ?>"><div class="icon_container" id="<?php echo $icon?>_icon"></div></a>
<?php endif; ?>
<?php endforeach;?>
</div>