WP_InfinitePaginate не работает для категорий

Covax
На сайте с 09.02.2012
Offline
119
523

На сайте используется функция паджинации, которая при достижении конца экрана скроллингом автоматически подгружает следующую страницу, на подобие Pinterest'a.

На главной странице все работает, но в категориях следующие страницы загружаются из главной, т.е.

site.com/category/page2 выдает контент из site.com/page2 и так далее.

Вот сама функция:

function wp_infinitepaginate(){

$loopFile = $_POST['loop_file'];
$paged = $_POST['page_no'];
$posts_per_page = get_option('posts_per_page');

query_posts(array('paged' => $paged ));
get_template_part( $loopFile );
exit;
}

А вот скрипт:

<script type="text/javascript">

function loadArticle(pageNumber) {
jQuery.ajax({
url: "<?php bloginfo('wpurl') ?>/wp-admin/admin-ajax.php",
type:'POST',
data: "action=infinite_scroll&page_no="+ pageNumber + '&loop_file=loop',
success: function(html){
jQuery("#main .container").append(html); // This will be the div where our content will be loaded
}
});
return false;
}
</script>

Есть у кого-нибудь идеи как пофиксить?

I
На сайте с 28.03.2011
Offline
37
#1

Ну не умеет он по категориям фильтровать, но научить можно запросто

Помогаю не только словом.. (/ru/forum/830720)
С
На сайте с 19.08.2011
Offline
51
#2

Насколько я понял, прочитав информацию по функции queryPosts (http://wp-kama.ru/function/query_posts)

Функция query_posts просит определенную страницу с постами, а нам нужно определенную страницу с постами из такой-то категории. Это решается несколькими параметрами, например вот так с помощью идентификатора категории cat.

function wp_infinitepaginate(){

$loopFile = $_POST['loop_file'];

$paged = $_POST['page_no'];

$posts_per_page = get_option('posts_per_page');

$categoryID = $_POST['category_id'];

query_posts(array('paged' => $paged, 'cat' => $categoryID));

get_template_part( $loopFile );

exit;

}

<script type="text/javascript">

function loadArticle(pageNumber) {

jQuery.ajax({

url: "<?php bloginfo('wpurl') ?>/wp-admin/admin-ajax.php",

type:'POST',

data: "action=infinite_scroll&page_no="+ pageNumber + '&loop_file=loop&category_id=ЗДЕСЬ СКОРМИТЬ ID КАТЕГОРИИ ',

success: function(html){

jQuery("#main .container").append(html); // This will be the div where our content will be loaded

}

});

return false;

}

</script>

Не пробовал, конечно, просто нашел минуту на прочтение доки.

I
На сайте с 28.03.2011
Offline
37
#3

в общем все верно, но надо предусмотреть поведение когда категория неуказана

С
На сайте с 19.08.2011
Offline
51
#4
imtod:
в общем все верно, но надо предусмотреть поведение когда категория неуказана

Бесплатно не работаем ☝ Идея подана, дальше доделает, я думаю.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий