$cats = '';
if ( get_query_var( 'cat' ) ) {
$cats = get_query_var( 'cat' );
}
var posts_vars = '<?php echo serialize($cats); ?>';
$('#loadmore').click(function(){ // клик на кнопку
if(jQuery(this).attr('id')!='loadmore-category') {
$(this).text('Загрузка...'); // меняем текст на кнопке
// получаем нужные переменные
var data = {
'action': 'loadmore',
'query': posts_vars,
'page' : current_page,
'max_pages':max_pages,
'url':window.location.toString(),
'cat':cat_id
};
// отправляем Ajax запрос
$.ajax({
url:ajaxurl,
data:data,
type:'POST',
datatype:'json',
success:function(data){
if(data) {
$('#loadmore').text('Показать ещё');
$('.blog-posts-articles').append(data);
$('.navigation.pagination').remove();
$('#main').append(pagination);
current_page++; // записываем новый номер страницы
if (current_page == max_pages) $("#loadmore").remove(); // если последняя страница, удаляем кнопку
} else {
$('#loadmore').remove(); // если посты не были получены так же удаляем кнопку
}
}
}); // код ajax запроса для кнопки "показать еще"
// функция обработчик запроса
$site_url = get_option('siteurl');
$args = unserialize(stripslashes($_POST['query']));
$args['paged'] = $_POST['page'] + 1; // следующая страница
$args['post_status'] = 'publish';
$args['posts_per_page'] = get_option( 'posts_per_page' );;
$sticky = get_option('sticky_posts');
$main_max_pages = $_POST['max_pages'];
$args['post__not_in'] = $sticky;
$main_first = '';
$main_last = '';
$content = '';
if ( $args['paged'] != 1 ) $main_first = '<a class="prev-first page-numbers" href="' . get_pagenum_link( $main_max_pages ) . '&cat=55"><span>«</span></a>';
if ( $args['paged'] != $main_max_pages ) $main_last = '<a class="next-last page-numbers" href="' . get_pagenum_link( $main_max_pages ) . '&cat=55"><span>»</span></a>';
if ( isset($_POST['cat']) ) { $cat = '&cat='.$_POST['cat']; } else { $cat = ''; }
$pag_args = [
'base' => $site_url.'/?paged=%#%'.$cat,
'format' => '',
'total' => $main_max_pages,
'current' => $args['paged'],
'end_size' => 1,
'mid_size' => 2,
'prev_next' => true,
'prev_text' => '<span>‹</span>',
'next_text' => '<span>›</span>',
'add_args' => false,
'add_fragment' => '',
'before_page_number' => '',
];
$resp = new WP_Query($args);
// если посты есть
if($resp->have_posts()) {
while($resp->have_posts()){
$resp->the_post();
get_template_part('template-parts/post/content', 'blog' );
}
$main_first = str_replace ('/wp-admin/admin-ajax.php', '', $main_first);
$main_last = str_replace ('/wp-admin/admin-ajax.php', '', $main_last);
$response = '<script> pagination = `<nav class="navigation pagination" role="navigation"><h2 class="screen-reader-text">Навигация по записям</h2><div class="nav-links">' . $main_first;
$result = paginate_links($pag_args);
$result = str_replace ('/wp-admin/admin-ajax.php', '', $result);
$response.= $result;
$response.= $main_last . '</div></nav>`; </script>';
echo $response;
}
die();