用条件语句隐藏空的自定义字段

在上面的例子中,我们向您展示了如何创建自定义字段并将其显示在主题中。
现在我们来看看如何在显示之前检查自定义字段是否不为空。为此,我们将修改代码,首先检查该字段是否包含数据。


<?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参数。