Не правильно формирует ссылки пагинации wp-paginavi(), kama_pagenavi() . Когда получаешь посты через ajax.
Первый раз при загрузки страниции привильно формирует ссылку : http://wordpress.loc/integrations/page/2/ и пагинация работает.
При подгрузки через ajax ,получаю посты по категории :
http://wordpress.loc/integrations/wp-admin/admin-ajax.php?page=2.
Вопрос почему вставляет wp-admin/admin-ajax.php.
Запрос
JS
function getCategory() { $(".sidebar .category-menu-desktop .list-category li span").click(function(event) { event.preventDefault(); $(".sidebar .category-menu-desktop .list-category li span").removeClass("selected"); $(this).addClass("selected"); $('.cutome_post_with_search_and_pagination .content').fadeOut('fast'); var categoryIdDesktop = $(this).attr('data-category-id'); $.ajax({ url: ajax.url, type: 'POST', dataType: "html", data: { action: 'get_ajax_posts', category_id: categoryIdDesktop }, success: function(response) { $('.cutome_post_with_search_and_pagination .content').html(response).fadeIn('fast'); } }); }); }
PHP
function get_ajax_posts() { global $wp_query; $paged = (get_query_var('page')) ? get_query_var('page') : 1; $category_id = $_POST["category_id"]; ob_start(); $query_args = array( 'paged' => $paged, 'posts_per_page' => 5, 'tax_query' => array( array( 'taxonomy' => 'integrations_taxonomy', 'field' => 'id', 'terms' => $category_id ) ) ); $query = new WP_Query($query_args); $i = 1; ?> <div class="row"> <?php if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post(); ?> <article class="post"> <div class="heading"> <div class="thumbnail"> <?php the_post_thumbnail(); ?> </div> <div class="title"> <h5 class="sub-title"> <?php echo get_field("sub-title"); ?> </h5> <h4> <?php the_title(); ?> </h4> </div> </div> <div class="description"> <?php the_excerpt(); ?> </div> <div class="learn-more"><a href="<?php the_permalink(); ?>">Learn more</a></div> </article> <?php if ($i % 2 == 0) { echo '</div><div class="row">'; } ?> <?php $i++; ?> <?php endwhile; ?> </div> <div class="pagination"> <?php if(function_exists('wp_pagenavi') && $query->max_num_pages>1) { wp_pagenavi( array( 'query' => $query ) ); } ?> </div> <?php else: ?> <?php echo '<h2>no posts here</h2>'; ?> <?php endif; ?> <?php wp_reset_query(); ?> <?php $ajax_posts2 = ob_get_contents(); ob_clean(); echo $ajax_posts2; wp_die(); ?> <?php } add_action('wp_ajax_get_ajax_posts', 'get_ajax_posts'); add_action('wp_ajax_nopriv_get_ajax_posts', 'get_ajax_posts');
Вы не передаете аяксом номер текущей пагинации, только id категории. Вам нужно доработать скрипт, а именно вы должны еще передавать значение $paged, этого значения нет в аякс запросе. Вы не правильно реализовали функцию get_ajax_posts().
А разве я не передаю $ paged = (get_query_var ('page'))? get_query_var ('page'): 1 ?.
Можете пожалуйста более подробние объясните.
Это передается в обычной генерации страницы, при аякс запросе ничего этого нет.
Я не пойму зачем мне текущую страницу передавать. Пуска будет текущей страницей первая по умолчанию. Как это повлияет на генерацию ссылок ?
Вам нужно гуглить что такое GET, POST, HEAD и что такое XMLHttpRequest.
У Вас непонимание основ.
Вы что читать не умеет. Или вы вопрос не поняли. Давайте с начала .Просто Ajax пагинация у меня работает погружаются посты делит на страницы. Но когда фильтруешь по таксономиям (категориям) . То тоже все правильно , делит на страницы, но ссылки формирует не правильно. Так понято ? И причем тут основы HTTP ?.
el-lable если вы знаете как сделать ответе , или сделаете за деньги если уж та то пошло, а то я внятного ответа не получил. И погрузка пагинации у меня так реализована.
Вероятно оба варианта вывода навигации генерируют "базовый" url страницы используя для этого get_pagenum_link, которая берет базовый url из текущего запроса. А при ajax запрос как раз идут на wp-admin/admin-ajax.php вот оно и добавляется, может не ясно объяснил, но надеюсь суть понятна.
Я с похожей проблемой разобрался так, не найдя другого решения (ну если только не создавать свою навигацию)
Да я так тоже подумал изначально и посмотрел код в wp-paginavi как формируется ссылка . Так и есть , что плагин берет "базового url" и формирует ссылку. И я примерно тоже так сделал только через фильтр wp-paginavi
Но опять же почему так сделано ? . Нету нормально плагина или кода который нормально формировала ссылку на пагинация . А не через "костыли" так скажем , c вырезанием /wp-admin/admin-ajax.php.