Попробуйте
<?php
$args= array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 10,
'ignore_sticky_posts' => true,
'paged' => 1
);
$my_posts = new WP_Query( $args );
if ( $my_posts->have_posts() ) :
while ( $my_posts->have_posts() ) : $my_posts->the_post();
// Your code for post
endwhile;
endif;
?>
<button class="btn a loadmore_event">View More</button>
Ajax
var ajaxurl = "<?php echo admin_url( 'admin-ajax.php' ); ?>";
var page = 2;
jQuery(function($) {
$('body').on('click', '.loadmore_event', function() {
var data = {
'action': 'load_posts_by_event',
'page': page,
'security': '<?php echo wp_create_nonce("load_more_posts"); ?>'
};
$.post(ajaxurl, data, function(response) {
if(response != '') {
$('your class name').append(response);
page++;
} else {
}
});
});
});
Функции. php
add_action('wp_ajax_load_posts_by_event', 'load_posts_event');
add_action('wp_ajax_nopriv_load_posts_by_event', 'load_posts_event');
function load_posts_event() {
$paged = $_POST['page'];
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 10,
'ignore_sticky_posts' => true,
'paged' => $paged
);
$my_posts = new WP_Query( $args );
if ( $my_posts->have_posts() ) :
while ( $my_posts->have_posts() ) : $my_posts->the_post();
// Your code for post
endwhile;
endif;
?>