<div class="row">
<div class="col-md-12 text-center">
<div class="button-group filter-button-group mb-4 case-adapt">
<p class="button-activate">Фильтр<span class="button-triangle"></span></p>
<button class="case-btn" data-filter="*">All</button>
<button class="case-btn" data-filter=".Android">Android App</button>
<button class="case-btn" data-filter=".CryptoCurrency">CryptoCurrency</button>
<button class="case-btn" data-filter=".eCommerce">eCommerce</button>
<button class="case-btn" data-filter=".ERP">ERP</button>
<button class="case-btn" data-filter=".iOS">iOS App</button>
<button class="case-btn" data-filter=".IoT">IoT</button>
<button class="case-btn" data-filter=".Online">Online Platform</button>
<button class="case-btn" data-filter=".Social">Social Networks</button>
<button class="case-btn" data-filter=".Web">Web Application</button>
</div>
<div class="grid">
<div class="grid-sizer"></div>
<?php
/*
* Template name: Моя галерея
*/
$current_page = (get_query_var('paged')) ? get_query_var('paged') : 1;
$params = array(
'posts_per_page' => 4, // количество постов на странице
'post_type' => array('web-development', 'mobile-development', 'ux'),
// тип постов
'paged' => $current_page // текущая страница
);
query_posts($params);
$wp_query->is_archive = true;
$wp_query->is_home = false;
$counter = 0;
while(have_posts()): the_post(); ?>
<div class="grid-item <?php $post_id = get_the_ID(); ?><?php $cur_terms = get_the_terms( $post_id, 'platform' ); foreach( $cur_terms as $cur_term ){ echo $cur_term->name .' '; }?>">
<?php
if ( $counter % 2 == 0 ):
get_template_part('template', 'one');
else:
get_template_part('template', 'two');
endif;
$counter++;
?>
</div>
<?php endwhile; ?>
<?php if ( $wp_query->max_num_pages > 1 ) : ?>
<script>
var ajaxurl = '<?php echo site_url() ?>/wp-admin/admin-ajax.php';
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>
<?php endif; ?>
</div>
<div class="projects-add_btn">
<a href='javascript:void(0);' id="true_loadmore" class="work-btn"><?php if (qtrans_getLanguage() == 'ru'): ?>
<?php echo "Загрузить ещё"; ?>
<?php elseif (qtrans_getLanguage() == 'ua'): ?> <?php echo "Завантажити бiльше"; ?>
<?php elseif (qtrans_getLanguage() == 'fi'): ?>
<?php echo "Load more"; ?> <?php else : ?>
<?php echo "Load more"; ?> <?php endif; ?></a>
</div>
</div>
function true_load_posts(){
$args = unserialize( stripslashes( $_POST['query'] ) );
$args['paged'] = $_POST['page'] + 1; // следующая страница
$args['post_status'] = 'publish';
// обычно лучше использовать WP_Query, но не здесь
query_posts( $args );
// если посты есть
if( have_posts() ) :
// запускаем цикл
while( have_posts() ): the_post(); ?>
<div class="grid-item <?php $post_id = get_the_ID(); ?><?php $cur_terms = get_the_terms( $post_id, 'platform' ); foreach( $cur_terms as $cur_term ){ echo $cur_term->name .' '; }?>">
<?php
if ( $counter % 2 == 0 ):
get_template_part('template', 'one');
else:
get_template_part('template', 'two');
endif;
$counter++;
?>
</div>
<?php endwhile;
endif;
die();
}
add_action('wp_ajax_loadmore', 'true_load_posts');
add_action('wp_ajax_nopriv_loadmore', 'true_load_posts');
jQuery(function($){
$('#true_loadmore').click(function(){
event.preventDefault();
$(this).text('Load...'); // изменяем текст кнопки, вы также можете добавить прелоадер
var data = {
'action': 'loadmore',
'query': true_posts,
'page' : current_page
};
$.ajax({
url:ajaxurl, // обработчик
data:data, // данные
type:'POST', // тип запроса
success:function(data){
if( data ) {
$('#true_loadmore').text('Загрузить ещё');
$('.grid script').before(data); // вставляем новые посты
current_page++; // увеличиваем номер страницы на единицу
if (current_page == max_pages) $("#true_loadmore").remove(); // если последняя страница, удаляем кнопку
jQuery('.grid').isotope('destroy');
jQuery('.grid').isotope({
itemSelector: '.grid-item',
percentPosition: true,
masonry: {
columnWidth: '.grid-sizer'
}
});
// filter items on button click
jQuery('.filter-button-group').on( 'click', 'button', function() {
var filterValue = jQuery(this).attr('data-filter');
jQuery('.grid').isotope({ filter: filterValue });
});
} else {
$('#true_loadmore').remove(); // если мы дошли до последней страницы постов, скроем кнопку
}
}
});
});
});