自定义帖子类型之间的Wordpress查询关系

时间:2015-03-17 14:52:15

标签: php mysql wordpress advanced-custom-fields

我有两种自定义帖子类型:MoviesDirectors

导演拥有很多电影 董事可以是内部员工或自由职业者。

我使用Advanced Custom Fields在Director Post Type上创建一个广播组,您可以将其设置为In-House或Freelance。

我还使用ACF在“电影发布类型”中创建一个选择导演的选择框,然后获得发布对象。

如何进行查询,以便我只获得导演为内部员工的电影?

编辑:我将提供一个使用纯SQL的示例:

SELECT movies.name, directors.name
FROM movies JOIN directors ON directors.id = movies.director_id
WHERE directors.type LIKE '%In-House%'

除了执行原始SQL之外,还有更好的方法在Wordpress中查询吗?

1 个答案:

答案 0 :(得分:0)

在电影循环中,您需要以下内容:

<?php 
$inhouse = get_posts(array(
    'numberposts' => -1,
    'post_type' => 'DIRECTOR_POST_TYPE_NAME',
    'meta_key' => 'SELECT_FIELD_NAME',
    'meta_value' => 'IN_HOUSE_FIELD_VALUE'
    )
));

?>
<?php if( $inhouse ): ?>
    <ul>
    <?php foreach( $inhouse as $ihdirector ): ?>
        <li>
            <a href="<?php echo get_permalink( $doctor->ID ); ?>">
                <?php echo get_the_title( $ihdirector->ID ); ?>
            </a>
        </li>
    <?php endforeach; ?>
    </ul>
<?php endif; ?>