我使用先进的自定义字段,并设置了自定义帖子类型的奖状,在奖状页面上有一个关系字段(display_on_page),您可以选择在哪个页面上显示奖状。
问题是,当一个页面被选中时,推荐显示在每个页面上
有人知道我在下面做错了什么吗?
<?php query_posts( 'post_type=Testimonial'); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php $posts = get_field('display_on_page');
if( $posts ): ?>
<?php the_field('the_testimonial'); ?>
<?php wp_reset_postdata(); ?>
<?php endif; ?>
<?php endwhile; ?>
如果我理解正确的话,您应该检查是否从get_field('display_on_page')
获得的值与当前页面ID匹配。(我假设页面ID是由您创建的自定义字段存储的)。
如果是这种情况,您可以根据自定义字段值查询您的帖子过滤,如:
<?php
// Fetches current page ID, assuming that this is page.php or similar
$current_page_id = get_the_ID();
query_posts(
'post_type=Testimonial',
'meta_key' => 'display_on_page',
'meta_value' => $current_page_id // Only gets Testimonials that are set for this page
);
while ( have_posts() ) : the_post();
the_field('the_testimonial');
endwhile;
// Resets default WP Post Data *AFTER* the loop is complete
wp_reset_postdata();
?>