【发布时间】:2019-11-18 18:14:36
【问题描述】:
我有一个 WordPress 自定义字段,用于将自定义类分配给某些可滚动元素以获得landor 样式效果。我的get_post_meta() 函数有问题,它只会显示循环第二个帖子的字段值,而不是第一个。我正在使用自定义帖子类型,但我认为这不是问题所在。有什么解决办法吗?
代码如下:
<?php $item = new WP_Query( ['post_type' => 'home-slider', 'posts_per_page' => 3] ); ?>
<?php if( $item->have_posts() ): while( $item->have_posts() ): $item->the_post(); ?>
<?php $class = get_post_meta($post->ID,'class',true); ?>
<div class="col-sm-12 col-md-12 col-lg-12 img-<?php echo $class; ?>"> <!-- custom class -->
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12 img-text">
<h1 class="">Hello</h1>
<p class="lead">Nice to meet you.</p>
</div>
</div>
<img class="img-fluid bg-img" src="<?php the_post_thumbnail_url(); ?>">
</div>
<?php endwhile; ?>
<?php endif; wp_reset_postdata(); ?>
【问题讨论】:
-
你检查过两个帖子都有元吗?
-
是的,键和值都保存在数据库中,但只有第一个不显示!可能是
top字有问题吗?我已将类字段值命名为顶部。 -
get_post_meta 将第三个参数设为 true,只会得到数组中的第一项。这就是你所希望的吗?
-
如果我
var_dump()将第三个参数设置为 false 的类值将返回一个空数组,但如果设置为 true,它只会加载第二个帖子的类。