在反向ACF关系查询中使用帖子ID

时间:2017-10-18 17:45:43

标签: php wordpress advanced-custom-fields

我在我的一个自定义帖子类型(发布)上使用关系字段。

我的所有文章都与“艺术家”帖子有关系字段,因此我的所有版本都与一位艺术家相关联。

现在我正在尝试执行反向查询以显示与在我的关系字段中选择的艺术家相关联的所有“版本”。

到目前为止,这是我的代码:

<?php 
$releases = get_posts(array(
'post_type' => 'releases',
'numberposts'=> -1,
'post__not_in' => array( $post->ID ),
'meta_query' => array(
array(
'key' => 'artist',
'value' => 191,
'compare' => 'LIKE'
)
)
));?>
<?php if( $releases ): ?>
<?php foreach( $releases as $release ): ?>

<div class="col-xs-2 text-center">

<a href="<?php echo get_permalink( $release->ID ); ?>" class="related_releases" title="<?php echo get_the_title($release->ID); ?>">

<img src="<?php echo get_the_post_thumbnail_url($release->ID, 'full'); ?>">

</a>

</div>

<?php endforeach; ?>

<?php endif; ?>

使用此代码,艺术家ID“191”的所有版本都会显示在自定义帖子类型上。

问题是我正在尝试显示与“发布”帖子相关联的艺术家的版本。

我要做的是在我的查询中获取艺术家的ID,如下所示(宽度“get_the_ID()”而不是“191”)

<?php 
$releases = get_posts(array(
'post_type' => 'releases',
'numberposts'=> -1,
'post__not_in' => array( $post->ID ),
'meta_query' => array(
array(
'key' => 'artist',
'value' => get_the_ID(),
'compare' => 'LIKE'
)
)
));?>

但是我得到了“发布”帖子的ID,而不是艺术家的ID。

任何人都可以帮我这个吗?

希望你理解我的问题,抱歉我的英语不好

3 个答案:

答案 0 :(得分:0)

这会在你的数组中起作用吗

c:\windows

答案 1 :(得分:0)

尝试以下代码。我认为这会奏效。

   <?php 
$artist       =  get_post_meta (get_the_ID(),'artist');
$releases = get_posts(array(
'post_type' => 'releases',
'numberposts'=> -1,
'post__not_in' => array( $post->ID ),
'meta_query' => array(
array(
'key' => 'artist',
'value' => $artist[0],
'compare' => 'LIKE'
)
)
));?>
<?php if( $releases ): ?>
<?php foreach( $releases as $release ): ?>

<div class="col-xs-2 text-center">

<a href="<?php echo get_permalink( $release->ID ); ?>" class="related_releases" title="<?php echo get_the_title($release->ID); ?>">

<img src="<?php echo get_the_post_thumbnail_url($release->ID, 'full'); ?>">

</a>

</div>

<?php endforeach; ?>

<?php endif; ?>

答案 2 :(得分:0)

我找到了解决方案:

<?php

$posts = get_field('artist'); if( $posts ): 
foreach(array_slice($posts, 0, 1) as $post):
setup_postdata($post);
$post_ID =  get_the_ID();
endforeach; 
wp_reset_postdata();
endif;

$releases = get_posts(array(
'post_type' => 'releases',
'numberposts'=> -1,
'post__not_in' => array( $post->ID ),
'meta_query' => array(
array(
'key' => 'artist',
'value' => $post_ID,
'compare' => 'LIKE'
)
)
));?>
<?php if( $releases ): ?>
<?php foreach( $releases as $release ): ?>

<div class="col-xs-2 text-center">

<a href="<?php echo get_permalink( $release->ID ); ?>" class="related_releases" title="<?php echo get_the_title($release->ID); ?>">

<img src="<?php echo get_the_post_thumbnail_url($release->ID, 'full'); ?>">

</a>

</div>

<?php endforeach; ?>

<?php endif; ?>
相关问题