我目前有两个这样的php块正在拉动结果:
<?php
$webtech = article_custom_field('web-tech');
if ( !empty($webtech) ) :
?>
<div class="tech-list">
<div class="tech-title">Technologies:</div>
<ul class="tech-ul"><?php echo $webtech; ?></ul>
</div>
<?php
endif;
?>
和
<?php
$url = article_custom_field('site-url');
elseif ( !empty($url) ) :
?>
<div class="site-url"><a href="<?php echo $url; ?>" target="_blank">Visit</a></div>
<?php
endif;
?>
我想将它们组合起来输出一个单独的块,例如:
<div class="tech-list">
<div class="tech-title">Technologies:</div>
<ul class="tech-ul"><?php echo $webtech; ?></ul>
<div class="site-url"><a href="<?php echo $url; ?>" target="_blank">Visit</a></div>
</div>
需要满足以下条件:
如果存在web-tech,则输出它。如果不存在,请不要输出site-url。
如果存在web-tech,则输出它。如果site-url存在,则输出它。
如果site-url存在,请输出它。如果不存在,请不要输出web-tech。
如果两个变量都不存在,则根本不应输出包含div。
我错过了一个明显的方法吗?这似乎微不足道,但我无法将if / else / elseif语句排成一行。
答案 0 :(得分:2)
听起来你需要在输出它们存在的容器之前检查两个变量。
<?php
$webtech = article_custom_field('web-tech');
$url = article_custom_field('site-url');
if ( !empty($webtech) || !empty($url))
{
?>
<div class="tech-list">
<?php
if ( !empty($webtech) )
{
?>
<div class="tech-title">Technologies:</div>
<ul class="tech-ul"><?php echo $webtech; ?></ul>
<?php
}
if ( !empty($url) )
{
?>
<div class="site-url"><a href="<?php echo $url; ?>" target="_blank">Visit</a></div>
<?php
}
?>
</div>
<?php
}
?>
答案 1 :(得分:2)
您可以将输出存储在变量中,如下所示:
<?php
$output = '';
$webtech = article_custom_field('web-tech');
if ( !empty($webtech) ) :
$output .= '<div class="tech-title">Technologies:</div>'
. '<ul class="tech-ul">' . $webtech . '</ul>';
endif;
$url = article_custom_field('site-url');
if(!empty($url)) :
$output .= '<div class="site-url"><a href="' . $url . '" target="_blank">Visit</a></div>';
endif;
if($output != ''):
echo '<div class="tech-list">';
echo $output;
echo '</div>';
endif;
?>
这样,只有在输出变量中设置了某些内容时,它才会显示任何内容。
这会解决您的问题吗?
答案 2 :(得分:0)
if (a or b) then {
OpenTechTitle;
if (a) SetAtext;
if (b) SetBtext;
CloseTechTitle;
}