我需要为nbsp(空格)创建一个if语句。
<?php echo get_post_meta($post->ID, 'the_term', true); echo ' '; ?>
这是在一条线的前面:
<h2><?php echo get_post_meta($post->ID, 'the_term', true); echo ' '; ?>Example
如果该术语存在,那么它将显示&#39;术语示例&#39;。如果没有,我需要展示&#39;示例&#39;。但是现在,如果没有if,我会得到&#39;实施例&#39 ;.注意丑陋的空间。
我想我以前就是这样做的,使用这个:
<?php if (post_custom('the_term')) {
echo get_post_meta($post->ID, 'the_term', true); echo ' ';
} 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>';
?>
仍然没有。这一个回声&#39;示例&#39;两次 - 其中一个甚至没有正确的HTML标记。
普通的PHP或特定于WordPress的代码都可以使用,因为这会从自定义帖子类型中提取自定义元素 - 如果存在的话。
有什么想法吗?
答案 0 :(得分:1)
您缺少else { echo '';
然后这个echo ' Example'</h2>'
在“示例”之后有一个引用太多了。
重新写入
<?php if (post_custom('the_term')) {
echo get_post_meta($post->ID, 'the_term', true); echo ' ';
} 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>';
?>
或as,并添加括号(这是一种很好的做法)
<?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>';
}
?>
答案 1 :(得分:0)
我认为这对你有用。
<h2><?php echo !empty(get_post_meta($post->ID, 'the_term', true)[0]) ? get_post_meta($post->ID, 'the_term', true)[0]." " : ""; ?>Example</h2>