WordPress при AJAX грузит все посты сразу + дублит их?
Пытаюсь по ajax подгружать посты, все бы ничего, но первые 16 выводятся нормально, после срабатывания события, выгружает штук 200 записей, хотя их всего 50, дублит их, а не подгружает по 8
скрипт ajax:
jQuery(function($){ var canBeLoaded = true, bottomOffset = 1500; $(window).scroll(function(){ var data = { 'action': 'loadmore', 'query': misha_loadmore_params.posts, 'page' : misha_loadmore_params.current_page }; if( $(document).scrollTop() > bottomOffset && canBeLoaded == true ){ $.ajax({ url : misha_loadmore_params.ajaxurl, data:data, type:'POST', beforeSend: function( xhr ){ canBeLoaded = false; }, success:function(data){ if( data ) { $('.category_hor_style').after( data ); // where to insert posts canBeLoaded = true; misha_loadmore_params.current_page++; } } }); } }); });
Обработчик php:
function misha_my_load_more_scripts() { global $wp_query; wp_register_script('my_loadmore', get_stylesheet_directory_uri() . '/myloadmore.js', array('jquery') ); wp_localize_script( 'my_loadmore', 'misha_loadmore_params', array( 'ajaxurl' => site_url() . '/wp-admin/admin-ajax.php', // WordPress AJAX 'posts' => json_encode( $wp_query->query_vars ), // everything about your loop is here 'current_page' => get_query_var( 'paged' ) ? get_query_var('paged') : 1, 'max_page' => $wp_query->max_num_pages ) ); wp_enqueue_script( 'my_loadmore' ); } add_action( 'wp_enqueue_scripts', 'misha_my_load_more_scripts' ); function misha_loadmore_ajax_handler(){ $args = json_decode(stripslashes($_POST['query']), true); $args['paged'] = $_POST['page'] +1; // we need next page to be loaded $args['post_status'] = 'publish'; $arg ['showposts'] = 16; query_posts( $args ); if( have_posts() ) : while( have_posts() ): the_post(); // тут моя верстка блоков endwhile; endif; die; } add_action('wp_ajax_loadmore', 'misha_loadmore_ajax_handler'); // wp_ajax_{action} add_action('wp_ajax_nopriv_loadmore', 'misha_loadmore_ajax_handler'); // wp_ajax_nopriv_{action}
Нет ограничения, запрос зациклился
А как поставить ограничение ?
Это не помогло, не думаю что тут дело в jquery
мне кажется что я тут что то делаю не так
ну как минимум я бы добавил пересчет отступа от конца страницы потому что страница по высоте изменяется а отступ не изменяется... изза этого посты сразу все вываливаются. Ну а дальше если проблема не исчезнет а это скорее всего именно так, никто вам не поможет не видя весь код, потому что это гадание на кофейной гуще...