Задать вопрос
@MrSusua

Как проверить есть ли данные в поле?

Добрый день!

Как проверить не пустое ли поле в функции:

<?php echo get_post_meta($post->ID, 'value', true);  ?>


И если не пустое, тогда его вывести, а иначе нет.

Что-то типа:

if isset ($value) {
<p>
<?php echo get_post_meta($post->ID, 'value', true);  ?>
</p>
}


Для чего это нужно? Чтобы не болтался пустой параграф или контейнер в коде.
  • Вопрос задан
  • 707 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@kernUSR
Я так понимаю - проверять нужно то, что возвращает функция get_post_meta() ?
если это так, то и проверяйте
if(get_post_meta($post->ID, 'value', true)) echo get_post_meta($post->ID, 'value', true);

Но это будет работать только тогда, когда функция get_post_meta() возвращает NULL или FALSE. Если она может возвращать пробел, то лучше проверять длину строки.
Ответ написан
Комментировать
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Если поле существует и значение не пустое:
if( ! empty( get_post_meta( $post->ID, 'value', true ) ) ) {
    echo get_post_meta($post->ID, 'value', true);
}

Если надо проверить на пробел (упомянутый kernUSR edge case), то можно обернуть в trim:
if( ! empty( trim( get_post_meta( $post->ID, 'value', true ) ) ) ) {
    echo get_post_meta($post->ID, 'value', true);
}

Но, имхо, это лишнее. Вряд ли у вас будут поля с пробелами, хотя если это user generated content, то все возможно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы