0

我为我正在制作的模板创建了一个配置文件。我试图让社交图标仅在设置变量时出现,因此如果他们不输入该图标的信息,它不会显示在图标行中。

我知道我可以使用 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>
4

1 回答 1

2

创建一个链接数组,然后使用 for 循环将它们全部打印出来:

例如

$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>
于 2013-05-07T03:50:16.307 回答