我有一些用户提交的变量,我希望在我的网站的不同部分显示如下:
<div class="pre_box">Term: </div>
<div class="entry"><?php $key='term'; echo get_post_meta($post->ID, $key, true); ?></div>
有时,这些变量可能为空,在这种情况下,我不想显示空变量的标签。在上面的示例中,我想要隐藏<div class="pre_box">Term: </div>
部分。有没有一些简单的方法可以检查上面的php变量是否为空并阻止标签显示?
更新,这是使用!empty
的代码<?php $key='term' ?>
<?php if( !empty( $key ) ): ?>
<div class="pre_box">Term: </div>
<div class="entry">
<?php echo get_post_meta($post->ID, $key, true); ?>
</div>
<?php endif; ?>
然而,无论如何,这仍然显示内容。我认为问题可能在于我定义$ key变量的方式。我试图从wordpress帖子中设置的自定义字段中提取数据 - 这就是$ post-&gt; ID业务的全部内容。
答案 0 :(得分:3)
<?php
$post_meta = get_post_meta($post->ID, 'term', true);
if (!empty($post_meta)) {
?>
<div class="pre_box">Term: </div>
<div class="entry"><?php echo $post_meta; ?></div>
<?php
}
?>
答案 1 :(得分:1)
<?php if( isset( $var ) ): ?><p><?php echo $var ?></p><?php endif; ?>
如果设置了$ var,它将显示带有$ var的段落,否则不会显示任何内容
答案 2 :(得分:1)
如果isset()
不起作用,请尝试使用empty()
:
<?php if( !empty( $key ) ): ?>
<div class="pre_box">Term: </div>
<div class="entry">
<?php echo get_post_meta($post->ID, $key, true); ?>
</div>
<?php endif; ?>
如果设置了值并且值与isset()
不同, TRUE
将发送NULL
。
empty()
会传递TRUE
(因此!empty()
会产生FALSE
):
""
(空字符串)0
(0为整数)"0"
(0为字符串)NULL
FALSE
array()
(空数组)var $var;
(声明的变量,但类中没有值)
我假设你的$key
已设置但是有一个空字符串。因此,empty()
是前往这里的方式。
答案 3 :(得分:0)
他们的代码在上面,$ key永远不会为空,因此将始终显示pre_box。您正在设置$key = 'term'
,这会为其提供一个值,因此!empty($key)
或isset($key)
将始终为真。
凯西的解决方案应该为您提供您想要的结果。