【发布时间】:2020-03-07 02:23:30
【问题描述】:
我正在为一个乐队制作一个网站,您可以在其中添加演出并添加在该特定演出中播放的歌曲。
所以我创建了两种自定义帖子类型: - 演出 - 歌曲
我有一个“关系”类型的自定义字段“歌曲”。此字段显示在自定义帖子类型上。这样我就可以将歌曲添加到特定的演出中。这完美无缺。
但我想在该网站的主页上显示一些统计数据:我想计算一首特定歌曲的播放次数并显示前 10 名。所以我想我必须遍历 gig 自定义帖子类型和计算与“歌曲”的关系。
我认为这样可以解决问题:
<?php
$args = array(
'post_type' => 'gig'
);
?>
<?php $loop = new WP_Query($args); ?>
<?php if ( $loop->have_posts() ) : while ( $loop->have_posts() ) : $loop->the_post(); ?>
<?php
print_r(get_field('songs'))
//$song_count = count(get_field('songs'));
//echo $song_count . " ";
the_title();
?><br />
<?php endwhile; ?>
<?php else: ?>
<!-- No gigs available -->
<?php endif; ?>
<?php wp_reset_postdata(); ?>
你可以在这里找到 print_r 的结果:http://snippi.com/s/njzg3uu
例如:歌曲“A memory”在 2 场演出中。这就是为什么你可以在数组中找到它两次的原因。 “Wasted”这首歌只能找到一次,因为它在 1 场演出中。
【问题讨论】:
-
尝试
var_dump(get_field('songs'))看看你的领域到底有什么。 -
@Stender 我得到 NULL 结果。
-
好的,我越来越近了。我已经更改了循环中的帖子类型。我不必看歌曲,但要看演出。因为我必须检查一首歌在演出中出现了多少次。你可以在这里查看我的 var_dump 输出:snippi.com/s/njzg3uu 歌曲“A Memory”在 2 个演出中。所以你看到这首歌在数组中出现了两次。
-
@Stender 我最终想要实现的是播放次数最多的 10 首歌曲的列表。
标签: php wordpress relationship advanced-custom-fields custom-post-type