如果自定义帖子类型的相关课程ID与当前课程页面ID匹配,则显示标题

时间:2016-08-12 15:52:58

标签: php wordpress for-loop relationship advanced-custom-fields

我目前的代码始终显示标题“课程教师”,当我需要它时,如果没有课程教师,它就会消失。

我需要做的是:

  • 查询所有“培训师”帖子。
  • 查询每个中的“课程”字段 帖子。
  • 检查当前的课程页面ID是否存在于 任何培训师职位内的“课程”字段。
  • 显示 具有与当前课程页面匹配的课程ID的培训师 ID。
  • 如果任何培训师的课程编号与当前课程页面ID相匹配,则显示标题为“课程教师”。

                <div class="instructors">
    
                    <?php
                    $trainersArray = array(
                        'post_type'      => 'trainers',
                        'posts_per_page' => -1,
                        'orderby' => 'name',
                        'order' => 'ASC'
                    );
                    query_posts($trainersArray);
    
                    $trainers = get_posts( $trainersArray );
    
                    ?>
    
                    <?php /*if($Course_ID):*/?>
    
                        <h3 id="trainers_heading">Course Instructors</h3><!-- only show this if there is instructors to show -->
    
                    <?php /*endif;*/?>
    
                    <div id="trainers_list">
                        <?php
    
                        foreach ( $trainers as $trainer ) :
    
                            $trainerID = $trainer->ID;
                            $trainer_courses = get_field('courses',$trainerID);  //SELECT THE CONNECTED COURSE'S CUSTOM FIELD
                            $fullName = get_the_title($trainerID); //GET THE NAME FIELD IN TESTIMONIAL POSTS
                            $trainerPage = get_the_permalink($trainerID);
                            $feedback_count = 0;
    
                            if( $trainer_courses ):
    
                                foreach( $trainer_courses as $trainer_course ):
    
                                    $trainerCourseID = $trainer_course->ID;
    
                                    if ($trainerCourseID == $Course_ID) : ?>
    
                                        <div class="instructor-block">
                                            <div class="instructor-profile ">
                                                <div class="profile-name">
                                                    <?php echo $fullName; ?>
                                                </div>
                                                <div class="profile-link">
                                                    <a href="<?php echo $trainerPage; ?>">
                                                        View Full Profile
                                                    </a>
                                                </div>
                                            </div>
                                        </div><br><!-- Another BR Fernando? and it's not even in body text, its after a DIV, whats your problem? -->
                                    <?php 
                                    endif;
    
                                endforeach; 
    
                            endif; 
    
                        endforeach; ?>  <!--echo json_encode( $trainers ); -->
    
                        <? wp_reset_query(); ?>
    
                    </div><!-- .trainers_list -->
                </div><!-- .instructors -->
    

1 个答案:

答案 0 :(得分:0)

“如果任何培训师的课程编号与当前课程页面ID相匹配,则显示标题为”课程教师“。

您必须先找出是否有任何培训师的课程编号与当前课程页面ID相匹配,然后才能决定是否显示标题。

你可以做两次foreach循环,也可以只创建一个包含$ fullName和$ trainerPage的数组。

如果数组包含元素,则显示标题并在新数组上进行简单的foreach循环,您只需输出先前获得的有关课程教师的信息。

如果我没有正确解决问题,请评论原因。