#php #wordpress
Вопрос:
У меня есть ввод с помощью редактора тем PHP для WordPress, и я сохраняю его в некоторой переменной.
Я хочу отобразить (эхо) переменную, если она не является пустой переменной.
Если я не использую If, он будет работать нормально (это доказательство того, что переменная не пуста).
<div class="role"><?php echo get_post_meta( get_the_ID(), 'hcf_single_role_1', true );?></div>
Но когда я хочу повторить единственную переменную со значением, это работает иначе
<?php if(!empty($post_id['hcf_single_role_1'])) { ?> //if not empty
<div class="name"><?php echo get_post_meta( get_the_ID(), 'hcf_single_role_1', true );?></div>
<?php } else { ?> //if empty
Variable Empty
<?php } ?>
если я изменюсь на if(empty())
это, все будет работать иначе, моя переменная будет распознана как пустая переменная.
*редактировать: я тоже пытался if(!empty($_POST['hcf_single_role_1']))
, но это то же самое
Комментарии:
1. в чем ценность
$post_id['hcf_single_pic_1']
, когда возникает проблема ? Есть$post_id['hcf_single_pic_1']
иget_post_meta( get_the_ID(), 'hcf_single_role_1', true )
то же самое. Также, где$post_id
установлен ?2. @Bhanu извините, что я виноват, я редактирую вопрос, так и должно быть
'hcf_single_role_1'
. На самом деле у меня также есть другие переменные, как'hcf_single_pic_1'
я писал ранее, все переменные являются строковыми, которые не являются пустыми. Но все это не работает.3. У вас есть переменная с именем
$post_id
, которая выглядит как целое число, но вы рассматриваете ее как массив. Почему вы тоже смешиваете этот массив с вызовомget_post_meta
?4. @ChrisHaas Я только что попробовал
if(!empty(get_post_meta( get_the_ID(), 'hcf_single_role_1', true )))
, и это работает. Прошлой ночью я попробовал тот же метод, но он не сработал, может быть, просто мои усталые глаза. да, я путаюсь, потому что я действительно не понимаю. Просто редактируйте тему, созданную другими
Ответ №1:
Основываясь на комментарии @ChrisHaas, я попробовал этот метод, и он работает
<?php if(!empty(get_post_meta( get_the_ID(), 'hcf_single_role_1', true ))) { ?> //if not empty
<div class="name"><?php echo get_post_meta( get_the_ID(), 'hcf_single_role_1', true );?></div>
<?php } else { ?> //if empty
Variable Empty
<?php } ?>
Метод до того, как я перепутал массив и строковые переменные.
Поэтому я убираю с помощью того же метода, который я get_post_meta()
использовал в качестве условия if