-2

<li>テーマ オプション パネルの入力に基づいて3 つのソーシャル ネットワーク アイコンを表示する WordPress フッター ファイルがあります。

リンク/画像が 1 つ以上ある場合はすべて正常に動作しますが、リンク/画像がない場合は、レンダリングされたソース コードに、開いたり閉じ<div>たり<li>してデータが含まれていません。訪問者に関する限り、彼らは賢明ではありませんが、データがない場合にこれらのタグを非表示にする方法はありますか.

これは私が使用しているコードです。

<div class="eight columns">
 <div class="social">
  <ul>
  <?php
  foreach (array("twitter","facebook","linkedin") as $option)
      ($tmp=of_get_option('fab_social_'.$option.'_url')) && (print('<li><a href="'.$tmp.'"><img src="'.of_get_option('fab_social_'.$option.'_icon').'" alt="Follow us on '.ucfirst($option).'"></a></li>'));
  ?>
  </ul>
 </div>
</div>
4

1 に答える 1

0

私だったら、最初にオプションを設定してから、表示するかどうかを評価します。

<?php
// Get all stored options
$socials = array();
foreach ( array( 'twitter', 'facebook', 'linkedin' ) as $option ){
    $setting = of_get_option('fab_social_'.$option.'_url');
    if ( $setting != '' ) $socials[ $option ] = $setting;
}


?>
<div class="eight columns">
<?php if ( count( $socials ) > 0 ) { /* check are any social options set, don't display unless >0 */ ?>
<div class="social">
<ul>
<?php
// Loop through options
foreach ( $socials as $option=>$setting ){
    print('<li><a href="'.$setting.'"><img src="'.of_get_option('fab_social_'.$option.'_icon').'" alt="Follow us on '.ucfirst($option).'"></a></li>'));
}
?>
</ul>
</div>
<?php } /* Close initial count() comparison */ ?>
</div>
于 2013-07-10T23:47:17.283 に答える