Слайдер Slick для поста ничего не отображает.

Вопрос или проблема

Я хочу сделать слайдер отзывов с помощью slick с https://kenwheeler.github.io/slick/. Я использую WP_Query для получения постов с конкретной категорией. Slick работает нормально, но не отображает содержимое. Вот мой PHP код:

   <div  class=" container">
                    <div id="testimoni-carousel" class="row testimoni-carousel" dir="rtl">

                   <?php 
                         $args = array(
                            'post_type'=> 'post',
                            'category_name' => 'komentar'
                          );
                          $query = new WP_Query( $args );

                          if ( $query->have_posts() ) {
                              while ( $query->have_posts() ) { 
                              $query->the_post();
                              ?>
                              <div class="text-center testimoni-teks col-12">
                                <h2 class="text-white"><?php the_title() ?></h2>   
                                <div class="text-white"><?php the_content() ?></div>

                              </div>
                                <?php
                              }
                              wp_reset_postdata();
                          }
                   ?>
                        </div>
                    </div>

И вот мой JS файл:

jQuery(document).ready(function($) {

$('#testimoni-carousel').slick({
    dots: true,
    slidesToShow: 1,
    slidesToScroll: 1
});

});

введите описание изображения здесь

Посмотрите на эту примерную структуру :

/**
* Раздел Услуги
*/
$servises_info = new WP_query('pagename=правни-услуги');
if ($servises_info -> have_posts() ) :
    while ( $servises_info -> have_posts() ) : $servises_info -> the_post();
                                            // смотрите ниже
                $relayted_post = new WP_query('cat=2&order=ASC');
                /* Начало второго цикла */
                while($relayted_post -> have_posts()): $relayted_post -> the_post();
                    $servises_data = get_the_content();

                // сделайте здесь свои вещи

                endwhile;
               // Конец цикла постов Услуги - цикл 2 
     endwhile; 
     // Конец цикла страниц Услуги - цикл 1

endif;
wp_reset_postdata();
// Конец раздела информации об услугах 

Я рекомендую использовать ID, а не имена при обращении к категориям, таксономиям.

Также у вас есть ошибки здесь :

<h2 class="text-white"><?php the_title() отсутствует закрывающая строка - > ";" ?></h2>   
<div class="text-white"><?php the_content() отсутствует закрывающая строка - > ";" ?></div>

Ответ или решение

Когда речь идет о создании слайдера отзывов с помощью плагина Slick в WordPress, иногда могут возникнуть проблемы с отображением контента. На основе предоставленного вами кода и описания проблемы, давайте детально разберем возможные причины и решения.

Описание проблемы

Вы используете WP_Query для получения постов из конкретной категории, но слайдер Slick работает, а контент не отображается. Основной код выполнен корректно, но стоит проверить несколько моментов, которые могут приводить к данной проблеме.

Возможные проблемы и их решения

  1. Проблемы с получением постов:

    • Убедитесь, что в категории "komentar" действительно есть опубликованные посты. Вы можете использовать var_dump для проверки количества постов, полученных в запросе:
      var_dump($query->found_posts);
    • Также проверьте, нет ли у ваших постов статуса "черновик" или "ожидает проверки", так как такие посты не будут отображены.
  2. Отображение контента:

    • Ваша реализация the_title() и the_content() выглядит корректно. Однако в вашем коде присутствуют ошибки в синтаксисе, так как отсутствуют закрывающие теги и точки с запятой. Правильный синтаксис должен выглядеть следующим образом:
      <h2 class="text-white"><?php the_title(); ?></h2>   
      <div class="text-white"><?php the_content(); ?></div>
  3. Инициализация JavaScript:

    • Убедитесь, что jQuery и Slick библиотека подключены корректно. Вы можете проверить это через инструменты разработчика в браузере (Console). Попробуйте сделать вывод в консоль в ready для подтверждения работы:
      jQuery(document).ready(function($) {
       console.log('Slick initialized');
       $('#testimoni-carousel').slick({
           dots: true,
           slidesToShow: 1,
           slidesToScroll: 1
       });
      });
    • Также убедитесь, что стилевые файлы для Slick загружены корректно, иначе слайдер может работать, но будет невидим.
  4. Структура HTML:

    • Проверьте, правильно ли сформирована структура HTML. Важно, чтобы каждый элемент для Slick был внутри родительского контейнера и чтобы не было дополнительных элементов, которые могут мешать корректной работе слайдера.
  5. Ошибки в терминологии:

    • В зависимости от локализации вашего сайта, убедитесь, что вы используете правильные названия категорий и не опустили какие-либо важные данные. Например, использование ID категорий вместо их имён может помочь избежать ошибок, связанных с неправильной локализацией.
  6. Тема и совместимость:

    • Удостоверьтесь, что ваша тема WordPress поддерживает использование коротких кодов и пользовательских постов. Некоторые темы могут блокировать определенные функции.

Пример исправленного кода

Вот исправленный пример вашего кода:

<div class="container">
    <div id="testimoni-carousel" class="row testimoni-carousel" dir="rtl">

        <?php 
        $args = array(
            'post_type' => 'post',
            'category_name' => 'komentar',
        );
        $query = new WP_Query($args);

        if ($query->have_posts()) {
            while ($query->have_posts()) { 
                $query->the_post();
                ?>

                <div class="text-center testimoni-teks col-12">
                    <h2 class="text-white"><?php the_title(); ?></h2>
                    <div class="text-white"><?php the_content(); ?></div>
                </div>

                <?php
            }
            wp_reset_postdata();
        }
        ?>
    </div>
</div>

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...