2017-02-17 12 views
3

Я использую WordPress CMS и CMB2 плагин для создания метабоксов и пользовательского fields.So я пытаюсь сделать на переднем конце вещи, как это:Получить данные, если существует, если не показывать [CMB2]

IF my_custom_text_field есть что-то внутри (заполнено) - затем получите эти данные, но если он пуст, отобразите какой-то текст. Я использую собственный метабокс cmb2 для создания пользовательских обменных полей и полей. У меня есть первая часть

<?php $seo_title = get_post_meta(get_the_ID(), 'seo_general_title', true); echo esc_html($seo_title);?> 

но как получить мой пользовательский текст, если это поле пуст, я не знаю. была тема с той же проблемой, но она не работает для меня https://css-tricks.com/forums/topic/cmb2-display-group-field-meta-data-if-exists-if-empty-display-default-text/ Может быть, кто-то может помочь? Благодарю.

+0

пожалуйста, дайте больше деталей, таких как СЦИ вы используете (я думаю, это WordPress), посмотрите здесь [mcve] уточнить ваш вопрос –

+0

обновлен, достаточно ли этого? Я думаю, что это похоже на инструкцию для wordpress, но не знаю, как определить, пусто ли мое поле cmb2 ... – nito

ответ

1

Этот ответ должен помочь вам:

https://wordpress.stackexchange.com/questions/56597/if-get-post-meta-is-empty-do-something

<?php $seo_title = get_post_meta(get_the_ID(), 'seo_general_title', true); 
    if (!empty($seo_title)){ 
    echo $seo_title; 
    } 
?> 
+0

нашел ответ спасибо большое !!!!!!!! – nito

+0

@nito рассмотреть вопрос о принятии aswer тогда :) –

+0

я не могу добавить thumb вверх моя репутация не 15 ((но очень спасибо! – nito

1
<?php 
$seo_title = get_post_meta(get_the_ID(), 'seo_general_title', true); 
$seo_title = (empty($seo_title)) ? "Default Value" : $seo_title; 
echo $seo_title; 

Или мой Предпочитаемый способ, так как я думаю, что его читаемость лучше (Вы определяете правильное значение в предложении IF, но будьте осторожны, чтобы не забыть всегда ставлю задание в простых скобках)

<?php 
if (empty($seo_title = get_post_meta(get_the_ID(), 'seo_general_title', true))) 
    $seo_title = "Default Value"; 
echo $seo_title; 

Или «самый простой» способ - но это предполагает, что функция get_post_meta() всегда возвращает строковое значение.

<?php 
$seo_title = get_post_meta(get_the_ID(), 'seo_general_title', true); 
if ($seo_title == "") { 
    $seo_title = "Default Value"; 
} 
echo $value; 

В конце концов, это в значительной степени зависит от вашего вкуса.

+1

Я бы сказал, что еще лучше проверить тип тоже с '===' вместо '==' –

+0

Человек, он работает! Могу я просто задать еще один вопрос. если данные не существуют, мне нужно добавить некоторые html или php, например, если строка пуста, и мой html или php-код ... Это будет прекрасный ответ, но так же большое спасибо за это! – nito

+0

@nito хорошо, вопрос в том, где бы вы хотели поместить «html или php-код» ... Если вы хотите поместить его в какое-то конкретное место, вам нужно будет найти способ ввести свой «html или php "в этом конкретном месте. То, как я смотрю на это, теперь ваш вопрос слишком общий. –

Смежные вопросы