Делаю страницу с 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();
}