Wordpress с каруселью Bootstrap не будет скользить, чтобы показать сетку старых постов - PullRequest
0 голосов
/ 30 октября 2019

Я использую Wordpress и Bootstrap 4 вместе, и я хочу использовать карусель Bootstrap для отображения сетки из шести кликабельных сообщений Wordpress на слайд. Я не использую никаких плагинов для этого. К сожалению, я не могу заставить работать навигацию.
Почему моя карусель не будет скользить и отображать старые сообщения?

Я хочу добиться чего-то вроде этого: https://www.codeply.com/go/HDu8lT7NxJ (Изменить)

Я попробовал по крайней мере пару разных реализаций, которые у меня не работали полностью. Я могу заставить карусель показывать, как я хочу, но она не будет скользить.

Моя первая попытка была основана на ответе, приведенном здесь: https://support.advancedcustomfields.com/forums/topic/bootstrap-carousel-with-acf/

Моя вторая была основана на этом: https://gist.github.com/nickberens360/29dbdb0924ebaebce228

Я посетил несколько других страниц справки, но нашел только решения, похожие на ванильную карусель Bootstrap, которые скользят по одному элементу за раз.

Это одиниз моих последних попыток:

<div id="blogPostsContainer" class="carousel slide" data-ride="carousel">

    <ol class="carousel-indicators">
        <?php
        $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : '1';
        $args = array (
            'nopaging'       => false,
            'paged'          => $paged,
            'posts_per_page' => '6',
            'post_type'      => 'post',
        );

        $query = new WP_Query( $args );
        ?>
        <?php if($query->have_posts()) : ?>
            <?php $i = 0; ?>
            <?php while($query->have_posts()) : $query->the_post() ?>

                <li data-target="#blogPostsContainer" 
data-slide-to="<?php echo $i ?>" class="<?php if($i === 0): ?>
                active<?php endif; ?>"></li>
                <?php $i++; ?>

            <?php endwhile ?>
        <?php endif ?>
        <?php wp_reset_postdata(); ?>
    </ol>

    <div class="carousel-inner" role="listbox">
        <?php
        $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : '1';
        $args = array (
            'nopaging'       => false,
            'paged'          => $paged,
            'posts_per_page' => '6',
            'post_type'      => 'post',
        );

        $query = new WP_Query( $args );
        ?>
        <?php if($query->have_posts()) : ?>
            <?php $i = 0; ?>

            <div class="testGrid">
            <?php while($query->have_posts()) : $query->the_post() ?>

                <?php if(has_post_thumbnail()) : $image =
 wp_get_attachment_url( get_post_thumbnail_id($post -> ID), 'thumbnail'); ?>

                        //custom code containing a clickable post with an  
                        //inline styled background image and text.

                    <?php endif; ?>

                <?php $i++; ?>
            <?php endwhile ?>
            </div>
        <?php endif ?>
        <?php wp_reset_postdata(); ?>

    </div>

    //carousel controls

</div>

Я могу отображать только 6 самых последних сообщений в сетке и ничего больше. Элементы управления и индикаторы карусели отображаются, но не работают. На самом деле слишком много индикаторов. Есть 6, когда нужно отображать только 2 (сейчас существует 11 сообщений).

Я не получаю никаких ошибок, и когда я нажимаю на отображаемые сообщения, меня перенаправляют на соответствующие страницы, как это должно работать,

Редактировать:

Я нашел другой вопрос, который похож на мой. Bootstrap Карусель нескольких кадров одновременно

Один из ответов привлек мое внимание, потому что лучше демонстрирует то, чего я хочу достичь, но только в HTML. Я использую Wordpress и его PHP: https://www.codeply.com/go/HDu8lT7NxJ

Это возвращает меня к проблеме перевода, которая мешала моему прогрессу в этой карусели. Это, и я слишком долго смотрел на эту проблему, так что на самом деле больше на меня ничего не бросалось. Я хочу думать, что проблема с навигацией связана с тем, что код не «как-то» обнаруживает старые сообщения, но я не уверен, что проблема заключается в том, как объявлен запрос.

<?php
        $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : '1';
        $args = array (
            'nopaging'       => false,
            'paged'          => $paged,
            'posts_per_page' => '6',
            'post_type'      => 'post',
        );

        $query = new WP_Query( $args );
        ?>

Или еслипроблема связана с тем, как я перебираю посты, или если это их комбинация. Я также видел реализации, использующие эту строку:

'numberposts' => -1,

в своих запросах, но я не уверен, будет ли хорошей заменой моя posts_per_page, потому что я хочу 6 постов на страницу.

Edit2:

Я обнаружил, что если сделать количество сообщений равным -1, получаются все сообщения, но это не решает мой вопрос.

...