У меня есть некоторые пользовательские переменные, которые я хочу отобразить в другой части моего сайта, например:
<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-> ID.
<?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 } ?>
<?php if( isset( $var ) ): ?><p><?php echo $var ?></p><?php endif; ?>
Если $ var установлен, он отобразит абзац с $ var, иначе ничего не будет отображаться
Если 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()
– это путь сюда.
Ну, как ваш код выше, ключ $ никогда не будет пустым, поэтому всегда будет отображаться pre_box. Вы устанавливаете $key = 'term'
, который дает ему значение so !empty($key)
или isset($key)
всегда будет true.
Решение Кейси должно дать вам результат, за который вы собираетесь.