不同的posts_per_page取决于页码

时间:2014-10-26 09:29:13

标签: php wordpress

"代码A"以下用于排除类别。但我也想完成这个:

如果是第1-3页,则显示8个帖子
如果是第4页或更多,则显示9个帖子

如何做到这一点?如何将其添加到"代码A" ?


代码A

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' );  

1 个答案:

答案 0 :(得分: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;