Проверить корректность скрипта
Если не сложно, проверьте корректность скрипта.
Скрипт не мой, нашел в Интернете, немножко изменил - все работает как надо, но корректно ли это сделано?
Добавление кнопки «Загрузить еще»:
<?php if ( $wp_query->max_num_pages > 1 ) : ?>
<script>
var true_posts = '<?php echo serialize($wp_query->query_vars); ?>';
var current_page = <?php echo (get_query_var('paged')) ? get_query_var('paged') : 1; ?>;
var max_pages = '<?php echo $wp_query->max_num_pages; ?>';
</script>
<div id="true_loadmore">Загрузить ещё</div>
<div class="preloader">Загружается...</div>
<?php endif; ?>
Скрипт асинхронной загрузки:
jQuery(function($) {
$('#true_loadmore').click(function(){
var $el = $(this),
$preloader = $('.preloader');
var data = {
'action': 'loadmore',
'query': true_posts,
'page': current_page
};
$.ajax({
url: 'http://сайт.ru/wp-admin/admin-ajax.php', // Обработчик
type: 'POST', // Тип запроса
data: data, // Данные
cache: false, // Кэширование
beforeSend: function( ) { // Действия, которые будут выполнены перед выполнением ajax-запроса
$el.hide();
$preloader.show();
},
success: function(data){
if( data ) {
$el.before(data); // Вставляем новые посты
current_page++; // Увеличиваем номер страницы на единицу
if (current_page == max_pages) {
$el.remove();
}
} else {
$el.remove(); // Если мы дошли до последней страницы постов, скроем кнопку
}
}
})
.complete(function() { // Действия, которые будут выполнены после завершения ajax-запроса
$preloader.hide();
$el.show();
});
});
});
Еще изначально было:
if (currentPage == maxPages) {
$el.remove();
}
Но так не работало, я заменил на
if (current_page == max_pages) {
$el.remove();
}
Источник: Stack Overflow на русском