Вопрос или проблема
Я хочу сделать слайдер отзывов с помощью 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 работает, а контент не отображается. Основной код выполнен корректно, но стоит проверить несколько моментов, которые могут приводить к данной проблеме.
Возможные проблемы и их решения
-
Проблемы с получением постов:
- Убедитесь, что в категории "komentar" действительно есть опубликованные посты. Вы можете использовать
var_dump
для проверки количества постов, полученных в запросе:var_dump($query->found_posts);
- Также проверьте, нет ли у ваших постов статуса "черновик" или "ожидает проверки", так как такие посты не будут отображены.
- Убедитесь, что в категории "komentar" действительно есть опубликованные посты. Вы можете использовать
-
Отображение контента:
- Ваша реализация
the_title()
иthe_content()
выглядит корректно. Однако в вашем коде присутствуют ошибки в синтаксисе, так как отсутствуют закрывающие теги и точки с запятой. Правильный синтаксис должен выглядеть следующим образом:<h2 class="text-white"><?php the_title(); ?></h2> <div class="text-white"><?php the_content(); ?></div>
- Ваша реализация
-
Инициализация JavaScript:
- Убедитесь, что jQuery и Slick библиотека подключены корректно. Вы можете проверить это через инструменты разработчика в браузере (Console). Попробуйте сделать вывод в консоль в
ready
для подтверждения работы:jQuery(document).ready(function($) { console.log('Slick initialized'); $('#testimoni-carousel').slick({ dots: true, slidesToShow: 1, slidesToScroll: 1 }); });
- Также убедитесь, что стилевые файлы для Slick загружены корректно, иначе слайдер может работать, но будет невидим.
- Убедитесь, что jQuery и Slick библиотека подключены корректно. Вы можете проверить это через инструменты разработчика в браузере (Console). Попробуйте сделать вывод в консоль в
-
Структура HTML:
- Проверьте, правильно ли сформирована структура HTML. Важно, чтобы каждый элемент для Slick был внутри родительского контейнера и чтобы не было дополнительных элементов, которые могут мешать корректной работе слайдера.
-
Ошибки в терминологии:
- В зависимости от локализации вашего сайта, убедитесь, что вы используете правильные названия категорий и не опустили какие-либо важные данные. Например, использование ID категорий вместо их имён может помочь избежать ошибок, связанных с неправильной локализацией.
-
Тема и совместимость:
- Удостоверьтесь, что ваша тема 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 и корректность подключения необходимых библиотек. Следуя данным рекомендациям, вы сможете решить проблему с отображением контента в слайдере отзывов на вашем сайте.