2014-10-26 4 views
0

«CODE A» ниже используется для исключения категорий. Но я также хочу, чтобы сделать это:Различные posts_per_page в зависимости от номера страницы

Если есть страница 1-3, дисплей 8 сообщений
Если страница 4 или более, дисплей 9 сообщений

Как это сделать? И как это можно добавить в «КОД А»?

.
кодогенератора

function exclude_categories($query){ 
    if ($query->is_home() && $query->is_main_query()) { 
    $query->set('category__not_in', array(60, 61)); 
    } 
} 
add_action('pre_get_posts', 'exclude_categories'); 
+0

Я думаю, что глобальный __ $ paged__ может быть правильным для этого достижения – pbaldauf

ответ

1

Я не в состоянии проверить это, но это может работать

function exclude_categories($query){  
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 

    if ($paged < 4) : 
     $query->set('posts_per_page', 8); 
    else : 
     $query->set('posts_per_page', 9); 
    endif; 

    if ($query->is_home() && $query->is_main_query()) { 
    $query->set('category__not_in', array(60, 61)); 
    } 
} 
add_action('pre_get_posts', 'exclude_categories'); 


Возможно, вам придется заменить

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 

с

global $paged; 
$paged = (is_int($paged) && $paged !== 0) ? $paged : 1; 
Смежные вопросы