2013-05-07 18 views
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'); 

這裏是沒有if語句放置圍繞每個環節每個圖標

<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> 

我希望能夠做到這一點的HTML。有沒有辦法?謝謝!

編輯這是基於@ 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

嘗試(ifisset($ VAR)){ 會發生什麼...... } 這應該工作 – Max 2013-05-07 03:48:19

+0

你可能不得不使用一些JavaScript的這 – samayo 2013-05-07 03:49:25

+1

@ Max我知道會工作,但我將不得不在每個圖標鏈接放置一個,我不想這樣做。 – zachstarnes 2013-05-07 03:49:51

回答

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> 

注意,不屬於$鏈接陣列中的任何鏈接將不會出現在所有的頁面上。如果你必須在陣列中的所有條目,那麼你可以保留那些沒有做這個隱藏在網址:

<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> 
+0

工作正常,除非沒有定義值,它仍然顯示圖標。除非設置了變量,否則我不想顯示圖標。請參閱問題 – zachstarnes 2013-05-07 03:58:19

+0

不是真的..這將只顯示陣列中的任何條目的圖標。你的意思是你不希望圖標顯示$ url =='#'? – SuitedSloth 2013-05-07 04:00:38

+0

是或如果只有一個'' – zachstarnes 2013-05-07 04:03:41