概述
所以我有两个独立的自定义帖子类型波段&视频。添加视频后,您可以选择视频中是否出现乐队。然后我使用:
<?php if( get_field( "featured_band" ) ): ?>
<div class="ox_video">
<h3><a href="<?php the_permalink(); ?>"><?php the_field('video_title') ;?></a></h3>
<?php
$bands = get_field('featured_band');
?>
<?php if( $bands ): ?>
<p>Bands in this video:
<?php foreach( $bands as $band ): ?>
<span class="vid_meta"><a href="<?php echo get_permalink( $band->ID ); ?>">
<?php echo get_the_title( $band->ID ); ?>
</a></span>
<?php endforeach; ?>
</p>
<?php endif; ?>
<div class="warrior_vid_item"><?php the_field('video_embed_code') ;?></div>
<div class="video_desc"><?php echo custom_field_excerpt(); ?></div>
</div>
<?php else : ?>
<?php endif; ?>
这会查看添加的乐队,并循环每个乐队,并将其作为一个链接吐出,有人可以点击该链接,然后将其带到乐队页面。完美的但现在我想去乐队自定义帖子类型,并制作任何带有乐队特色的视频,出现在乐队上-single.php
如何使用高级自定义字段插件做到这一点?
我确实尝试过:
<?php if( get_field( "video_title" ) ): ?>
<div class="ox_video">
<h3><a href="<?php the_permalink(); ?>"><?php the_field('video_title') ;?></a></h3>
<?php
$bands = get_field('video_title');
?>
<?php if( $bands ): ?>
<p>Bands in this video:
<?php foreach( $bands as $band ): ?>
<span class="vid_meta"><a href="<?php echo get_permalink( $band->ID ); ?>">
<?php echo get_the_title( $band->ID ); ?>
</a></span>
<?php endforeach; ?>
</p>
<?php endif; ?>
<div class="warrior_vid_item"><?php the_field('video_embed_code') ;?></div>
<div class="video_desc"><?php echo custom_field_excerpt(); ?></div>
</div>
<?php else : ?>
<?php endif; ?>
我无法理解的是,从乐队的角度来看,这种关系是如何运作的。我们将不胜感激。如果您需要查看更多代码,请告诉我。
如果通过在视频自定义帖子类型中选择相关波段来定义关系,那么为了获得特定波段的视频,您需要进行反向查找。据我所知,没有一个高级的自定义字段函数可以为您做到这一点,所以您需要编写自己的查询。类似这样的东西:
$videos = get_posts(array(
'post_type' => 'video',
'meta_query' => array(
array(
'key' => 'featured_band',
'value' => '"' . $post->ID . '"',
'compare' => 'like'
)
)
));
从ACF站点:http://www.advancedcustomfields.com/resources/relationship/
"可以对某个帖子(帖子a)执行反向查询,以查找选择该帖子(帖子B、帖子C)的所有帖子(帖子C)。要了解有关反向查询的更多信息,请阅读本深度教程:http://www.advancedcustomfields.com/resources/tutorials/querying-relationship-fields/"
双向查询在这两页中涵盖得相当全面。