Wordpress ACF关系

时间:2013-08-29 19:17:05

标签: php wordpress

概述

所以我有两个单独的自定义帖子类型。 乐队&的即可。添加视频后,您可以选择是否在视频中显示某个频段。然后我用:

<?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; ?> 

我无法理解的是这种关系如何从乐队的角度来看。帮助将不胜感激。如果您需要查看更多代码,请与我们联系。

2 个答案:

答案 0 :(得分:0)

如果通过在视频自定义帖子类型中选择相关频段来定义关系,那么为了获取特定频段的视频,您需要进行反向查找。据我所知,没有高级自定义字段功能为您执行此操作,因此您需要编写自己的查询。像这样:

$videos = get_posts(array(
  'post_type' => 'video',
  'meta_query' => array(
     array(
       'key' => 'featured_band', 
       'value' => '"' . $post->ID . '"', 
       'compare' => 'like'
     )
   )
));

答案 1 :(得分:0)

来自ACF网站: http://www.advancedcustomfields.com/resources/relationship/

&#34;可以对帖子(帖子A)执行反向查询以查找已选择它的所有帖子(帖子B,帖子C)(帖子A)。要了解有关反向查询的详情,请阅读此深入教程:http://www.advancedcustomfields.com/resources/tutorials/querying-relationship-fields/&#34;

在这两页中完全涵盖了双向查询。