Я использую 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, получаются все сообщения, но это не решает мой вопрос.