我有一个自定义帖子类型“建筑”和另一个自定义帖子类型“架构师”。建筑通过ACF关系领域与建筑师相关。ACF关系字段的WordPress查询
在单建筑师页面中,我想显示与特定建筑师关联的建筑物列表。
到目前为止,我已经这样做实现了这个以下:
$loop = new WP_Query(array('post_type' => 'building', 'paged' => $paged, 'posts_per_page' => -1));
if ($loop->have_posts()) : ?>
<ul>
<?php while ($loop->have_posts()) : $loop->the_post();
$building_name = get_the_title();
$building_link = get_the_permalink();
$architects = get_field('architect');
if($architects): ?>
<?php foreach($architects as $post):?>
<?php setup_postdata($post);
if(get_the_title() == $architect_name) { ?>
<li><a href="<?php echo $building_link; ?>"><?php echo $building_name ?></a></li>
<?php } ?>
<?php endforeach; ?>
<?php wp_reset_postdata(); ?>
<?php endif; ?>
<?php endwhile; ?>
</ul>
<?php endif;
wp_reset_postdata();
然而这似乎doese不是很有效,我期待引进的关系进入查询本身,这是我做这个尝试:
$buildings = get_posts(array(
'post_type' => 'building',
'meta_query' => array(
array(
'key' => 'architect',
'value' => '"' . get_the_ID() . '"',
'compare' => 'LIKE'
)
)
));
<?php if($buildings): ?>
<ul>
<?php foreach($buildings as $building): ?>
<li><a href="<?php echo get_permalink($building->ID); ?>"><?php echo get_the_title($building->ID); ?></a></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
这是不工作的,它不返回任何东西......
你能看到我在做什么错误或者你有什么其他的想法接近THI情况?
你在ACF领域打电话?我没有看到任何遵循传统文档模式的东西(https://www.advancedcustomfields.com/resources/relationship/) – Aibrean
您是否允许您的架构师领域有多个值?如果架构师是一个单一的选择,您使用的是错误的元查询(上面的元查询仅适用于多选,因为存储数据的方式)。 –
@NathanDawson建筑师是一个关系领域,允许多个选择 –