Вопрос или проблема
Я использую плагин Ajax Load More для запроса постов и у меня есть система фильтров, чтобы отфильтровать посты в цикле. Я пытаюсь добавить счетчик, который будет сообщать “Ваш поиск вернул X постов”, где X – это количество отображаемых постов, соответствующих текущим критериям.
Мне удалось получить общее количество постов, но я не смог получить текущее количество постов, отображаемых через Ajax Load More. Я не нашел много информации, когда искал это.
Есть ли у кого-нибудь идея, как отобразить количество текущих постов, отображаемых с помощью Ajax Load More, а не общее количество всех постов?
Вы можете получить (текущее) количество отображаемых постов из offset.
Поскольку это ajax-загрузка постов для wp, у него должны быть номера смещения.
Таким образом, вы можете отобразить число следующим образом
Javascript
var offset = 4;
return $.ajax({
url: ajaxurl,
type: "POST",
data: data,
success: function(returnData) {
// отобразить номер смещения в div .post-number
$('div.post-number').html('Это количество отображаемых постов="+ offset);
}
}), offset += 4;
HTML
<div class="post-number"></div>
Вы можете добавить это под div loadmore
Я не очень уверен в плагине Ajax Load More.
Если вы просто хотите настроить плагин Ajax Load More, вам следует обратиться к автору этого плагина.
Ответ или решение
Подсчет текущего количества постов при использовании Ajax Load More
При работе с плагином Ajax Load More в WordPress, вам может понадобиться отобразить количество постов, соответствующих текущим критериям поиска. Это может быть вызовом, особенно когда вы уже получили общее количество постов, но не знаете, как отобразить количество постов в текущей загрузке.
Шаги для реализации
Чтобы отобразить количество текущих постов, вам нужно использовать переменную offset, которая доступна в Ajax-запросах. Давайте подробно рассмотрим, как это сделать.
-
Настройка JavaScript: В вашем JavaScript коде, вы можете отслеживать количество загруженных постов. Используйте переменную
offset
, чтобы подсчитать количество постов, загруженных на данный момент.Пример кода:
var offset = 0; var postsPerPage = 4; // Количество постов, загружаемых за один раз function loadMorePosts() { var data = { action: 'load_more', // Действие для запроса offset: offset, // другие параметры... }; $.ajax({ url: ajaxurl, type: "POST", data: data, success: function(returnData) { // Обновите HTML с новыми постами $('#post-container').append(returnData); // Обновите счетчик количества отображаемых постов offset += postsPerPage; // Увеличивайте offset на количество загруженных постов $('div.post-number').html('Ваш поиск вернул ' + offset + ' постов'); } }); } $(document).on('click', '#load-more-button', function() { loadMorePosts(); });
-
HTML-структура: Убедитесь, что у вас есть место в HTML-коде для отображения количества постов, например:
<div class="post-number">Ваш поиск вернул 0 постов</div> <div id="post-container"></div> <button id="load-more-button">Загрузить еще</button>
-
Инициализация: При первой загрузке страницы, установите начальное значение
offset
в 0 и отобразите инициализированное сообщение:$(document).ready(function(){ $('div.post-number').html('Ваш поиск вернул ' + offset + ' постов'); });
Заключение
Таким образом, вы можете динамически обновлять количество отображаемых постов с помощью Ajax Load More. Это позволит вашему пользователю получать актуальную информацию о количестве постов, соответствующих запросу. Рекомендуется тестировать реализацию на различных устройствах и в разных браузерах для обеспечения кроссбраузерной совместимости и лучшего пользовательского опыта.
Если у вас возникнут дополнительные вопросы о плагине Ajax Load More или его настройке, обязательно проконсультируйтесь с документацией или обратитесь к разработчикам плагина.