Ajax (jquery) wp_query pagination возвращает -1

В настоящее время я разрабатываю ajaxified тему для wordpress. Я перечисляю сообщения в определенной категории, но при нажатии на страницу возвращается -1. Допустим, я установил showposts на 3, а определенная категория – 2 сообщения, ссылка на предыдущие сообщения не отображается, как ожидалось. Теперь, если в категории есть 5 должностей, ссылка на предыдущие сообщения появляется снова, как и ожидалось, но когда я нажимаю на нее, возвращается -1. Вот мой код:

<?php $category = get_category_by_slug($_POST['catname']); $wp_query = new WP_Query(); $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $wp_query->query('cat='.$category->term_id.'&showposts=1&paged='.$paged); ?> <script> $('.pagi a').click(function(e) { e.preventDefault(); var link = $(this).attr('href'); $('#b_contentwrapper').load(link); }); </script> <?php while ($wp_query->have_posts()) : $wp_query->the_post(); get_the_title(); endwhile; ?> <div class="pagi"><?php next_posts_link('&laquo; Older Entries') ?></div> <div class="pagi"><?php previous_posts_link('Newer Entries &raquo;') ?></div> <?php ?> 

Кроме того, ссылка предыдущей публикации – http://domain.com/wp-admin/admin-ajax.php?paged=2 которая, как я подозреваю, может быть корнем проблемы.

Может ли кто-нибудь помочь?

благодаря

Первое, что нужно сделать, это проверить любые плагины, которые влияют на результаты поиска. Причина в том, что у меня работает плагин «Искать все». Хотя он предназначен для поиска большего количества результатов и выделения поисковых терминов, он изменит любой экземпляр new WP_Query(); что делает его бесполезным.

Это функция обратного вызова для загрузки сообщений с помощью ajax. Вызывающая функция работает, как и любой другой запрос на стороне клиента, повторяет результаты для пустого div.

 function cbSearch() { $counter = 1; $max = 4; $html = ""; //Variables passed through $_POST $s = $_POST['src']; //the first time you call this function page number should be 1 //Additional pages/functions/links are created with this code $page_num = $_POST['idx']; //Assuming the old $wp_query is basically null, //there's no reason to copy previous parameters, just make a new one $search_query = array('s' => $s, 'posts_per_page' => $max, 'paged' => $page_num, 'post_type' => 'post', 'post_status' => 'publish'); $search = new WP_Query($search_query); //use the object created, have_posts() alone will use global $wp_query if ($search->have_posts()) { //The variables required to figure out next or previous page //Total number of post that match $s $total = $search->found_posts; //Post count for the page you're on $post_count = $search->post_count; //The maximum amount of pages to display all of the post results $page_count = ceil($search->max_num_pages); while ($search->have_posts()) { //Setup post data !important $search->the_post(); //Now your in the loop, use any loop functions you want $title = highlight(get_the_title(), $s); } $html = "<div id='news-page-nav'>"; //Since we know what page we're on we know where to go $pre = $page_num - 1; $nex = $page_num + 1; if ($pre > 0) { $html .= "<span class='left fg-grey-light pointer' onclick='searchPosts(" . $pre . ");return false;' >P</span>"; } if ($nex <= $page_count) { $html .= "<span class='right fg-grey-light pointer' onclick='searchPosts(" . $nex . ");return false;' >N</span>"; } $html .= "</div>"; echo $html; } else { echo false; } die(); } function highlight($str, $mts) { $keys = explode(" ", $mts); $title = preg_replace('/(' . implode('|', $keys) . ')/iu', '<span class="bg-highlight">\0</span>', $str); return $title; } 

Невозможно использовать ссылку на предыдущие / следующие сообщения с ajax, поскольку предоставленные ссылки – это URL-адреса, которые загружают новую страницу. Я должен был напомнить себе, что с AJAX страница не перезагружается, чтобы обслуживать новый контент. Если у вас есть ссылка на предыдущие / следующие сообщения, я создал две «ссылки», которые снова вызывают функцию ajax, но с другим номером страницы. Теперь вы можете искать результаты поиска без использования параметров URL-адреса по умолчанию WP. Что-то, о чем нужно помнить, это то, как это повлияет на результаты поисковой системы.