jQuery(document).ready(function($) { console.log(ajax_object); const categoryButtons = $('.category-btn'); const postContainer = $('#post-container'); const paginationContainer = $('.pagination'); let currentCategory = 'all'; function filterPosts(category, page) { $.ajax({ url: ajax_object.ajax_url, type: 'POST', data: { action: 'filter_posts', category: category, paged: page }, success: function(response) { postContainer.html(response.posts); updatePagination(response.total_pages, response.current_page, category); }, error: function(xhr, status, error) { console.error('AJAX Error:', status, error); } }); } function updatePagination(totalPages, currentPage, category) { let paginationHtml = '<nav>'; if (currentPage == 1) { paginationHtml += '<span class="pagination-disabled prev"><img src="https://stillviral.com/wp-content/uploads/2025/03/Icon.svg" alt="Previous" class="pagination-icon prev"></span>'; } else { paginationHtml += '<a href="#" class="page-link prev" data-page="' + (currentPage - 1) + '"><img src="https://stillviral.com/wp-content/uploads/2025/03/Icon.svg" alt="Previous" class="pagination-icon prev"></a>'; } for (let i = 1; i <= totalPages; i++) { if (i == currentPage) { paginationHtml += '<span class="current">' + i + '</span>'; } else { paginationHtml += '<a href="#" class="page-link" data-page="' + i + '">' + i + '</a>'; } } if (currentPage == totalPages) { paginationHtml += '<span class="pagination-disabled next"><img src="https://stillviral.com/wp-content/uploads/2025/03/Icon.svg" alt="Next" class="pagination-icon next"></span>'; } else { paginationHtml += '<a href="#" class="page-link next" data-page="' + (currentPage + 1) + '"><img src="https://stillviral.com/wp-content/uploads/2025/03/Icon.svg" alt="Next" class="pagination-icon next"></a>'; } paginationHtml += '</nav>'; paginationContainer.html(paginationHtml); } categoryButtons.on('click', function(e) { e.preventDefault(); const category = $(this).data('category'); currentCategory = category; categoryButtons.removeAttr('data-active'); $(this).attr('data-active', 'true'); filterPosts(category, 1); }); paginationContainer.on('click', '.page-link', function(e) { e.preventDefault(); const page = $(this).data('page'); filterPosts(currentCategory, page); }); });