我有3种定制的帖子类型:
Group
在ACF中,每个CPT都有自己的实地小组如下:
(related_team_member)
团队成员
所有这些字段都是通过ACF中的关系连接起来的,因此结构如下
无名氏( John -> )摄影->定位芽,工作室嫩芽,修整
无名氏( John -> )录像机,->基础拍摄,无人机射击,后期制作
因此,为了解释这一点,小组的一名成员属于摄影和录像两组,他为每组提供6项服务,3项不同的服务。
现在,我有几页要输出团队成员的数据。
single-team-members.php
我在这里输出单个团队成员的数据,所以在John的Doe卡上,我有他的照片,名字,他所属的组(摄影,录像)和他提供的所有服务,这就完成了。下面的循环稍微简化了一点:
while(have_posts()) {
the_post(); ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<h3 class="member-group"><?php
$relatedGroups = get_field('related_group');
if ($relatedGroups) {
echo '<ul class="member-group__list">';
foreach($relatedGroups as $group) { ?>
<li><a href="<?php echo get_the_permalink($group); ?>"><?php echo get_the_title($group); ?></a><span class="member-group__divider">, </span></li>
<?php
} echo '</ul>';
}?>
</h3>
<p><?php the_content(); ?></p>
<?php
$relatedServices = get_field('related_service');
if ($relatedServices) {
echo '<ul>';
foreach($relatedServices as $service) { ?>
<li><a href="<?php echo get_the_permalink($service); ?>"><?php echo get_the_title($service); ?></a></li>
<?php }
echo '</ul>';
}?>
<?php }
page-all-team.php
这里我有所有的团队成员卡片,每一张卡片都输出了他们所属的图片、名字和组,在这里我输出了他们所属的所有组,所以对于John来说是“摄影,录像”
$relatedTeamMembers = new WP_Query(array(
'posts_per_page' => -1,
'post_type' => 'team-member',
'orderby' => 'title',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'related_team_group',
'compare' => 'LIKE',
'value' => array()
)
)
));
if ($relatedTeamMembers->have_posts()) {
while($relatedTeamMembers->have_posts()) {
$relatedTeamMembers->the_post(); ?>
<a href="<?php the_permalink(); ?>"><div class="team-member">
<div class="team-member__label-gold">
<div class="team-member__label-gold__name"><?php the_title(); ?></div>
<div class="team-member__label-gold__service">
<?php
$groups = get_field('related_team_group');
foreach($groups as $group){
echo $group->post_title;
}?>
</div>
</div>
</div></a>
<?php }
}
page-photography.php
在这一页上,我想输出:
无名氏在摄影组中提供的
page-videography.php
在这一页上,我想输出:
无名氏在视频组提供的Postproduction
page-aerial-shooting.php
在这一页上,我想输出:
只有一个约翰的团体= Videography
发布于 2022-06-23 22:38:40
当使用ACF的"post对象“字段时,如果使用get_field
函数,就会得到post对象。
您可以将get_field函数与post的ID一起使用,以获得这个特定帖子的字段(以ID为目标)。因此,如果您想输出一个名为"myfield“的字段,可以使用在"post object”字段中获得的in。
请注意使用正确的foreach循环,使用services
作为service
(单)。
$services = get_field('related_service');
foreach($services as $service):
$myfield = get_field('myfield', $service->ID); // using id of single post object
echo $myfield;
endforeach;
https://stackoverflow.com/questions/72735096
复制相似问题