0

作成中のテンプレートの構成ファイルを作成しました。変数が設定されている場合にのみソーシャルアイコンを表示しようとしているので、そのアイコンの情報を入力しないとアイコンの行に表示されません。

if ステートメントを使用して実行できることはわかっていますが、12 個の if ステートメント (アイコンごとに 1 つ) を作成する必要はありません。

ここにアイコンの構成セクションがあります

/* ==========================================================================
   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 に答える