<ul class="artist-links">
<?php if(!empty($artist_website)) { ?><li class="artist-website"><a href="<?=$artist_website?>" target="_blank"><img src="<?php bloginfo('template_url') ?>/images/artist-website.png" alt="<?php the_title(); ?> Website" /></a></li><?php } ?>
<?php if(!empty($artist_youtube)) { ?><li class="artist-youtube"><a href="http://youtube.com/<?=$artist_youtube?>" target="_blank"><img src="<?php bloginfo('template_url') ?>/images/artist-youtube.png" alt="<?php the_title(); ?> Youtube" /></a></li><?php } ?>
<?php if(!empty($artist_twitter)) { ?><li class="artist-twitter"><a href="http://twitter.com/<?=$artist_twitter?>" target="_blank"><img src="<?php bloginfo('template_url') ?>/images/artist-twitter.png" alt="<?php the_title(); ?> Twitter" /></a></li><?php } ?>
</ul>
我想让这个无序列表只在至少有一个变量(artist-website,artist-youtube,artist-twitter)不为空时显示。因此,如果所有变量都为空,则此列表根本不会显示。在此代码之前我可以添加什么才能使其工作?
答案 0 :(得分:1)
我建议稍微改变你的设计。
//Initialize the variables and define a fixed array for easy manipulation
if($website) { $artist['website'] = $website; }
if($youtube) { $artist['youtube'] = $youtube; }
if($twitter) { $artist['twitter'] = $twitter; }
// If somehow, $artist contains values
if(count($artist)) { ?>
<ul class="artist-links"
<? foreach($artist as $key=>$value) { ?>
<li class="artist-<?=$key?>">
<a href="<?=$value?>" target="_blank">
<img src="theimage.jpg" />
</a>
</li>
<? } ?>
<?
}
?>
答案 1 :(得分:0)
如果它们都是空的,请在开头检查:
<?php if(!(empty($artist_website) && empty($artist_youtube) && empty($artist_twitter))) : ?>
<ul class="artist-links">
<?php if(!empty($artist_website)) { ?><li class="artist-website"><a href="<?=$artist_website?>" target="_blank"><img src="<?php bloginfo('template_url') ?>/images/artist-website.png" alt="<?php the_title(); ?> Website" /></a></li><?php } ?>
<?php if(!empty($artist_youtube)) { ?><li class="artist-youtube"><a href="http://youtube.com/<?=$artist_youtube?>" target="_blank"><img src="<?php bloginfo('template_url') ?>/images/artist-youtube.png" alt="<?php the_title(); ?> Youtube" /></a></li><?php } ?>
<?php if(!empty($artist_twitter)) { ?><li class="artist-twitter"><a href="http://twitter.com/<?=$artist_twitter?>" target="_blank"><img src="<?php bloginfo('template_url') ?>/images/artist-twitter.png" alt="<?php the_title(); ?> Twitter" /></a></li><?php } ?>
</ul>
<?php endif; ?>
基本上我们检查每个变量的条件为“空”。如果所有3都为空,则AND(true,true,true)
的结果为true
。然后我们看到“!”或NOT运算符,它反转true
并使其成为false
。因此,如果所有变量都为空,则不要打印其中的行。
您可能还会注意到我使用的“:”/“endif”语法,当我拼接到html标签时,我发现它更整洁。
答案 2 :(得分:0)
如果您想完全按照上述说法行事:
我想制作这个无序列表 只出现至少一个 变量(艺术家网站, artist-youtube,artist-twitter)不是 空。
这样做
<?php
if(!empty($artist_website) || !empty($artist_youtube) || !empty($artist_twitter)) {
//Do what you want to do. Like show the ordered list.
} //End of if statement
?>
如果至少有一个变量具有非空值,则传递条件。