Вывести слайдер owl carousel из custom field Wordpress без плагина

312
22 июня 2017, 06:07

Нужно вывести слайдер из поля the_sub_field('owl_carousel') без плагина, средствами Wordpress.

Использую этот код:

<?php $i = 0; ?>
        <?php while( have_rows('project_sections') ): the_row(); ?>
            <section class="<?php if ($i % 2 == 0) : ?>bg-gray<?php else: ?>bg-white<?php endif; ?>">
                <div class="container">
                    <h2 class="page-head_sub-title"><?php the_sub_field('project_sections_title'); ?></h2>
                    <?php the_sub_field('project_sections_description'); ?>
                    <?php //var_dump(get_sub_field('owl_carousel')); ?>
                </div>
                <?php
                $args = array(
                    'post_parent' => $post->ID,
                    'post_type' => 'attachment',
                    'orderby' => 'menu_order',
                    'order' => 'ASC',
                    'numberposts' => 1, // number of images (slides)
                    'post_mime_type' => 'image'
                );
                if ( $images = get_children( $args ) ) {
                    // if there are no images in post, don't display anything
                    echo '<div class="owl-carousel-wrap project-gallery ">
                                <div id="projectGalleryProject" class="owl-carousel owl-loaded owl-drag">
                                <a href="#projectPhotosProject" data-slide-to="0">
                                ';
                    foreach( $images as $image ) {
                        echo '<div class="item" data-toggle="modal" data-target="#projectGalleryProjectModal"><div class="project-gallery_item">' . wp_get_attachment_image( $image->ID, 'project_slider' ) . '</div></div>';
                    }
                    echo '</a></div></div>';
                }
                ?>
                <div class="js-control-project-gallery-project">
                    <div class="carousel-control-prev" aria-hidden="true"><span class="icon-arrow"></span></div>
                    <div class="carousel-control-next" aria-hidden="true"><span class="icon-arrow"></span></div>
                </div>
            </section>
            <?php $i++; ?>
        <?php endwhile; ?>
    <?php endif; ?>

Выводятся все загруженные изображения, кроме добавленных непосредственно в поле слайдера. Нужно как-то обратиться к полю 'owl_carousel', и наверное, нужно сделать проверку на существование значений в поле для каждой секции if exist. Т.е. если изображения загружены в слайдер, то показать слайдер.

Как изменить существующий код для корректного отображения слайдера?

Answer 1

Надо было обратиться к полю get_sub_field('owl_carousel')

<?php if($images = get_sub_field('owl_carousel')){
                    echo '<div class="owl-carousel-wrap project-gallery"><div id="projectGalleryProject" class="owl-carousel owl-loaded owl-drag">';
                    for($i=0; $i<count($images); $i++){
                        echo "<a href='#projectPhotosProject' data-slide-to='{$i}'><div class='project-gallery_item'><img src='{$images[$i]['url']}' alt='{$images[$i]['alt']}'></div></a>";
                    }
                    echo "</a></div>
                </div>";
                }
                ?>
READ ALSO
Получить периоды из таблицы

Получить периоды из таблицы

Есть таблица (много строк)

153
Глобальные контроллеры(модули) laravel

Глобальные контроллеры(модули) laravel

Добрый день! Подскажите как реализовать сайдбары? То есть хочу сделать контроллеры которые бы отрабатывали и выводили контент на каждой...

255
YII 2 joinWith жадная или ленивая загрузка

YII 2 joinWith жадная или ленивая загрузка

Метод joinWith иммет какую загрузку?

303