2014-11-26 3 views
0

Мне нужно создать оператор if для nbsp (пробел).Проблема с синтаксисом php 'if exists'

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

Это на передней линии:

<h2><?php echo get_post_meta($post->ID, 'the_term', true); echo '&nbsp;'; ?>Example 

Если термин существует, то он будет показывать 'Term пример'. Если нет, мне нужно показать «Пример». Но прямо сейчас, без if, я получаю «Пример». Обратите внимание на уродливое пространство.

Я думаю, что я бы сделал это раньше, с помощью этого:

<?php if (post_custom('the_term')) { 
echo get_post_meta($post->ID, 'the_term', true); echo '&nbsp;'; 
} else { 
echo ''; 
?> 

... но это не работает. Ошибка сервера.

Я также попытался это:

<?php $the_term_check = get_post_meta($post->ID, 'the_term', true); 
if (!empty($the_term_check)) 
echo '<h2>'; echo get_post_meta($post->ID, 'the_term', true); echo ' Example'</h2>'; 
if (empty($the_term_check)) 
echo'<h2>Example</h2>'; 
?> 

Еще не так. Этот один пример «Пример» дважды - и один из них даже не имеет правильной разметки HTML.

Любой простой PHP или WordPress-код будет работать, так как это вытаскивание настраиваемой мета из пользовательского типа сообщения - если оно существует.

Любые идеи?

+0

С одной стороны, вам не хватает закрывающей скобки для ' else { echo ''; '- Тогда это' echo 'Пример' '' одна цитата слишком много. –

+0

О, черт возьми, это все. Это то, что я получаю от работы, когда я так устаю, что мои глаза расплываются. Этот первый кодовый блок сделал трюк. Время выходить из компьютера, говорит! Спасибо за легкую быструю помощь. – kpmedia

+0

Добро пожаловать. –

ответ

0

Я думаю, что это сработает для вас.

<h2><?php echo !empty(get_post_meta($post->ID, 'the_term', true)[0]) ? get_post_meta($post->ID, 'the_term', true)[0]."&nbsp;" : ""; ?>Example</h2> 
1

У вас не хватает закрывающей скобки для else { echo '';

Тогда это echo ' Example'</h2>' есть одна цитата слишком много после того, как «Example».

Перезапись

<?php if (post_custom('the_term')) { 
echo get_post_meta($post->ID, 'the_term', true); echo '&nbsp;'; 
} else { 
echo ''; 
} // added missing brace 
?> 

и

<?php $the_term_check = get_post_meta($post->ID, 'the_term', true); 
if (!empty($the_term_check)) 
echo '<h2>'; echo get_post_meta($post->ID, 'the_term', true); echo ' Example</h2>'; 
if (empty($the_term_check)) 
echo'<h2>Example</h2>'; 
?> 

или как, и с добавлением скобок (это хорошая практика)

<?php 
$the_term_check = get_post_meta($post->ID, 'the_term', true); 
    if (!empty($the_term_check)){ 
     echo '<h2>'; echo get_post_meta($post->ID, 'the_term', true); 
     echo ' Example</h2>'; 
} 
    if (empty($the_term_check)){ 
     echo'<h2>Example</h2>'; 
} 
?>