用条件语句隐藏空的自定义字段
在上面的例子中,我们向您展示了如何创建自定义字段并将其显示在主题中。
现在我们来看看如何在显示之前检查自定义字段是否不为空。为此,我们将修改代码,首先检查该字段是否包含数据。
<?php
$mood = get_post_meta($post->ID, 'Mood', true);
if ($mood) { ?>
<p>Today's Mood: <? echo $mood; ?></p>
<?php
} else {
// do nothing;
}
?>
不要忘记用自己的自定义字段名称替换。
将多个值添加到自定义字段
自定义字段可以在同一个帖子中重新使用,以添加多个值。您只需要再次选择它并添加另一个值。

然而,我们在上面的例子中使用的代码只能显示一个值。
要显示自定义字段的所有值,我们需要修改代码并使其返回数组中的数据。您将需要在主题文件中添加以下代码:
<?php
$mood = get_post_meta($post->ID, 'Mood', false);
if( count( $mood ) != 0 ) { ?>
<p>Today's Mood:</p>
<ul>
<?php foreach($mood as $mood) {
echo '<li>'.$mood.'</li>';
}
?>
</ul>
<?php
} else {
// do nothing;
}
?>
不要忘记用自己的自定义字段名称替换。
在这个例子中,你会注意到我们已经将get_post_meta函数的最后一个参数改变为false。此参数定义函数是否应返回单个值。将其设置为false允许它将数据作为数组返回,然后我们在foreach循环中显示。
使用特定的自定义键显示帖子
WordPress允许您显示自定义键及其值的帖子。例如,如果要创建自定义归档页面以显示具有特定自定义键的所有帖子,则可以使用WP_Query类来查询与这些字段匹配的帖子。
您可以使用以下代码作为起点。
$args = array(
'meta_key' => 'Mood',
'meta_value' => 'Happy'
);
$the_query = new WP_Query( $args );
<?php
// the query
$the_query = new WP_Query( $args ); ?>
<?php if ( $the_query->have_posts() ) : ?>
<!-- the loop -->
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<?php endwhile; ?>
<!-- end of the loop -->
<!-- pagination here -->
<?php wp_reset_postdata(); ?>
<?php else : ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
不要忘记用你自己的值替换meta_key和meta_value参数。

