我有两种帖子类型:教师
和学生
。样本数据:
教师职位类别:
Teacher A
Teacher B
Teacher C
学生的职位类型:
Student A
Student B
Student C
and many more students
我还有一个名为student role
的分类法,它有一些值:
Intern
Master Student
PhD Student
在学生帖子类型中,我使用ACF关系为学生分配老师。一个学生可以有一个以上的老师。
例如:
学生A
是实习生
,被分配给老师A
和老师B
学生B
是Master学生
,被分配给教师C
学生C
是PhD学生
,分配给教师C
我想为教师C创建一个自定义页面,其中我只显示所有的学生角色。
所以有一个C老师的页面,它应该列出硕士生
和博士生
,因为在这个分类下有两个学生。
我试着先让所有的学生,然后是所有的学生角色,但不确定下一步该做什么,有什么想法吗?
$args = array(
'posts_per_page' => -1,
'post_type' => 'students',
'meta_query' => array(
array(
'key' => 'acf_relationship',
'value' => 'Manual ID OF Teacher',
'compare' => 'LIKE'
)
)
);
// get all posts for teacher with ID
$all_posts = get_posts( $args );
// get all student roles
$tax_terms = get_terms( 'student-role');
是名为single teacher的自定义页面。php?
检查此代码。
<?php
// the get_the_ID() will get the teacher's ID since you are in single-teacher.php
// $the_post will be the student object
// $the_posts is the student's object
$the_posts = get_field('acf_relationship', get_the_ID());
if( $the_posts ): ?>
<ul>
<?php foreach( $the_posts as $p ): // variable must NOT be called $post ?>
<li>
<!-- This will display the student title or name -->
<a href="<?php echo get_permalink( $p->ID ); ?>"><?php echo get_the_title(
$p->ID ); ?></a>
<!-- This will display the student's taxononmy -->
<?php
$the_terms = get_the_terms( $p->ID, 'your_taxonomy_name' );
$t_url = '';
$t_name = '';
foreach ($the_terms as $t) {
$t_url = get_term_link( $t->slug, 'your_taxonomy_name');
$t_name = $t->name;
}
?>
<!-- Print student role list with link -->
<span>Your student roles: <a href="<?php echo $t_url; ?>">
<?php echo $t_name; ?></a>
</span>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
注意:学生的ACF字段分配应该只返回Post id而不是post对象(您可以通过编辑ACF字段进行设置)
此处查询C老师(C老师岗位id=1662)
$args = array(
'numberposts' => -1,
'post_type' => 'student',
);
$the_query = new WP_Query( $args );
?>
<?php if( $the_query->have_posts() ): ?>
<ul>
<?php while( $the_query->have_posts() ) : $the_query->the_post();
if( in_array('1662', get_field('assign')) ) : ?>
<li>
<a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a>
</li>
<?php endif;
endwhile; ?>
</ul>
<?php endif; ?>
<?php wp_reset_query(); ?>
在同时循环中,您可以显示标题、角色分类、内容等