Пейджинг на индексной странице не работает с posts_per_page

Я работаю над темой, в которой есть и страница проекта, и блог. Я хочу оставить посты в блоге по умолчанию равными 10, поэтому я использовал параметр posts_per_page, чтобы ограничить количество проектов на первой странице, например:

<?php $catID = get_cat_id('Projects');
$number = get_option('grd_portfolio_number');
if(have_posts()) : 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts('paged=' . $paged . '&posts_per_page=' . $number . '&cat=' . $catID); ?>
<?php while(have_posts()) : the_post(); ?>

Поэтому, если я установлю его на 4 (со страницы параметров темы, а не из настроек), первая страница будет ограничена 4 проектами, но вторая страница ничего не покажет, но если я зайду в свои настройки WP и заменю эти 10 на a 4, он будет правильно отображать остальную часть моего контента.

Я предполагаю, что настройка что-то переопределяет, но я не могу понять, как это исправить.


person Norbert    schedule 12.05.2010    source источник


Ответы (1)


Если вы просто хотите изменить количество сообщений на странице и оставить все остальные параметры как раньше (такие как категория, номер страницы, год в архиве и т. д.), просто добавьте в строку запроса только posts_per_page:

// put this at the top of your function
global $query_string;
..
// append the posts_per_page parameter to the other parameters
query_posts($query_string.'&posts_per_page=' . $number . ');
person 2ndkauboy    schedule 09.09.2010