我有一些用户提交的变量,我想将它们显示在网站的不同部分,如下所示:
<div class="pre_box">Term: </div>
<div class="entry"><?php $key='term'; echo get_post_meta($post->ID, $key, true); ?></div>
Run Code Online (Sandbox Code Playgroud)
有时,这些变量可能为空,在这种情况下我不想显示空变量的标签。在上面的示例中,我想隐藏该<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; ?>
Run Code Online (Sandbox Code Playgroud)
但是,无论如何,这仍然会显示内容。我认为问题可能出在我定义 $key 变量的方式上。我试图从 WordPress 帖子中设置的自定义字段中提取数据 - 这就是 $post->ID 业务的全部内容。
如果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; ?>
Run Code Online (Sandbox Code Playgroud)
isset()
TRUE
如果该值已设置且值不同于 ,则将传送NULL
。
empty()
相反,将交付TRUE
(因此!empty()
结果为FALSE
):
""
(空字符串)0
(0 作为整数)"0"
(0 作为字符串)NULL
FALSE
array()
(一个空数组)var $var;
(声明了一个变量,但在类中没有值)
我假设你$key
已经设置但有一个空字符串。因此,这empty()
就是去这里的方法。
<?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
}
?>
Run Code Online (Sandbox Code Playgroud)