Задать вопрос
@christi157

AJAX Lazy load возвращает только один раз. Почему далее идет ошибка ajax not a function?

Делаю страницу с lazy load. Если не выводить посты на страницу, то в консоли в нетворк превьюшке все посты отлично подгружаются друг за другом. Но когда я в коде добавляю $('#loadmore').append(data); и ставлю div с id в template, то по нажатию кнопки подгружается только еще одна запись, а далее следует ошибка $.ajax is not a function. Как это победить? Спасибо!

Это код singl-blog.php
<main id="main" class="site-main">
		<?php
    query_posts(array(
                'posts_per_page' => 1, 'post_type'=> 'blog',
            ));
            if( have_posts() ){
		while ( have_posts() ) {
			the_post();

			get_template_part( 'templates/template-blog' );
    }
      wp_reset_query();

    }?>
    <div id="loadmore"></div>
<a href="#" id="load-post" title="">Показать еще</a>
<script>
var page = 2,
    post_count = $('#post-count').text(),
    btn_load_post = $('#load-post'),
    url_controller = "http://localhost/streamdream/wp-admin/admin-ajax.php";

$(function(){

    btn_load_post.on('click',function(e){
        e.preventDefault();
        page++;
        $.ajax({
            type       : "GET",
            data       : {posts_per_page : 1, paged: page, action: "test_ajax"},
            dataType   : "html",
            url        : url_controller,
            success    : function(data){
                $('loadmore').append(data);
            }
        });
    });
});
</script>
		</main><!-- #main -->


это код function.php
add_action( 'wp_ajax_test_ajax',        'test_ajax' ); // For logged in users
add_action( 'wp_ajax_nopriv_test_ajax', 'test_ajax' ); // For anonymous users

function test_ajax(){
	$posts_per_page = (isset($_GET['posts_per_page'])) ? $_GET['posts_per_page'] : 1;
	$paged = (isset($_GET['paged'])) ? $_GET['paged'] : 0;

	query_posts(array(
			'post_type'=> 'blog',
			'posts_per_page' => $posts_per_page,
			'paged'          => $paged
	));

	if (have_posts()) {
			while (have_posts()){
					the_post();
					get_template_part( 'templates/template-blog' );
			}
	}
	wp_reset_query();
  wp_die();
}
  • Вопрос задан
  • 315 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Austin_Powers
@Austin_Powers
Web developer (Symfony, Go, Vue.js)
В селекторе ошибка
$('loadmore').append(data);

$('#loadmore').append(data);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы