Wordpress ACF relationships


Wordpress ACF relationships

概述

所以我有两个独立的自定义帖子类型波段&视频。添加视频后,您可以选择视频中是否出现乐队。然后我使用:

<?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/"

双向查询在这两页中涵盖得相当全面。