WP Courseware & ACF - создать обзор доступных курсов - PullRequest
0 голосов
/ 29 мая 2018

Я использую WP Courseware и хотел бы создать страницу со всеми доступными курсами.

Проблема в том, что: - Курсы на самом деле не страницы с полями, которые я могу использовать.Это не CPT или из того, что я могу сказать.Я не могу добавить настраиваемые поля в этот раздел, так как ACF ничего не может из него прочитать.

Я обнаружил, что этот вопрос выглядит так, как будто он делает то, что мне нужно: Сложный запрос, объединяющий функцию WP Courseware, поля повторителя ACF и мета-запрос для поиска определенного файла шаблона

КРОМЕ Я не уверен, как она справилась с полем повторителя.Есть идеи?Итак, мой вопрос: как она создала поле повторителя и добавила идентификатор страницы в это поле?

  • Если я смогу узнать, как она это сделала, я, вероятно, смогу создать отдельную страницу со всеми модулями, подключенными к курсу.

Я использовал тот же код из статьи, поскольку моя цель точно такая же.Моя проблема в том, что я не знаю, как использовать ACF в этом случае (раньше использовал ACF, но не для чего-то подобного).

$user = wp_get_current_user();
                $user_id = $user->ID;
                $user_course_list = WPCW_users_getUserCourseList($user_id);
                $course_association_arr = get_field('course_association', 'option');
                // Loop through user's courses
                foreach ( $user_course_list as $user_course ) : 
                    $course_id = $user_course->course_id;
                    $course_title = $user_course->course_title;
                    // Loop through the ACF course ID/page associations
                    foreach ( $course_association_arr as $course_association ) :
                        $assoc_course_id = $course_association['wp_courseware_id'];
                        if ( $course_id == $assoc_course_id ) :
                            // Loop through the ACF associated pages
                            foreach ( $course_association['associated_pages'] as $associated_page ) :
                                $page_id = $associated_page->ID;
                                $page_url = $associated_page->guid;
                                $args = array(
                                    'post_type' => 'page',
                                    'page_id' => $page_id,
                                    'meta_query' => array(
                                        array(
                                            'key' => '_wp_page_template',
                                            'value' => 'page-course-home.php',
                                        ),
                                    )
                                );
                                $course_assoc_pages = new WP_Query( $args );
                                if( $course_assoc_pages->have_posts() ) :
                                    while ( $course_assoc_pages->have_posts() ) : $course_assoc_pages->the_post();
                                        echo '<li><a href="' . $page_url . '">'. $course_title . '</a></li>';
                                    endwhile;
                                endif;
                                wp_reset_query();
                            endforeach;
                        endif;
                    endforeach;
                endforeach;
...