<main id="primary" class="news">
<div class="container">
<div class="news__wrap">
<div class="news__items" id="filtering-results">
<?php
if ( have_posts() ) :
$i = 1;
while ( have_posts() ) :
the_post();
if ($i == 1) {
get_template_part( 'template-parts/content', 'max' );
}
if ($i > 1) {
get_template_part( 'template-parts/content' );
}
$i++;
endwhile;
endif;
?>
</div><!-- #items -->
<?php
global $wp_query;
// текущая страница
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
// максимум страниц
$max_pages = $wp_query->max_num_pages;
// если текущая страница меньше, чем максимум страниц, то выводим кнопку
if( $paged < $max_pages ) {
echo '<div id="loadmore" style="text-align:center;">
<a href="#" data-max_pages="' . $max_pages . '" data-paged="' . $paged . '" class="news-more button">Показать еще <i class="icon icon-arrow_mini-down"></i></a>
</div>';
}
?>
</div><!-- #wrapper -->
</div><!-- #container -->
</main><!-- #main --
<?php
add_action( 'wp_ajax_loadmore', 'true_loadmore' );
add_action( 'wp_ajax_nopriv_loadmore', 'true_loadmore' );
function true_loadmore() {
$paged = ! empty( $_POST[ 'paged' ] ) ? $_POST[ 'paged' ] : 1;
$paged++;
$args = array(
'paged' => $paged,
'post_status' => 'publish'
);
query_posts( $args );
?>
<div class="news__items">
<?php
while( have_posts() ) : the_post();
get_template_part( 'template-parts/content', get_theme_mod( 'display_excerpt_or_full_post', 'excerpt' ) );
endwhile;
?>
</div>
<?php
die;
}
jQuery(function($){
// определяем в переменные кнопку, текущую страницу и максимальное кол-во страниц
var button = $( '#loadmore a' ),
paged = button.data( 'paged' ),
maxPages = button.data( 'max_pages' );
button.click( function( event ) {
event.preventDefault(); // предотвращаем клик по ссылке
$.ajax({
type : 'POST',
url : misha.ajax_url, // получаем из wp_localize_script()
data : {
paged : paged, // номер текущей страниц
action : 'loadmore' // экшен для wp_ajax_ и wp_ajax_nopriv_
},
beforeSend : function( xhr ) {
button.text( '...' );
},
success : function( data ){
paged++; // инкремент номера страницы
button.parent().before( data );
button.html( 'Показать еще <i class="icon icon-arrow_mini-down"></i>' );
// если последняя страница, то удаляем кнопку
if( paged == maxPages ) {
button.remove();
}
}
});
} );
});