首页 开发指南

今天,把博客的链接改成了伪静态,发现以前写得分页失效了,查看了一下代码,发现以前的程序是用GET得到得页数,随后改成了全局变量$paged,发页首页在排除了分类为10的文章后,分页居然显示了所有文章的分页了。分页函数如下:

function par_pagenavi($range = 9){
        global $paged, $wp_query;
        if ( !$max_page ) {$max_page = $wp_query->max_num_pages;}
        if($max_page > 1){if(!$paged){$paged = 1;}
        if($paged != 1){echo " 返回首页 ";}
        previous_posts_link(' 上一页 ');
        if($max_page > $range){
            if($paged < $range){for($i = 1; $i <= ($range + 1); $i++){echo "$i";}}
        elseif($paged >= ($max_page - ceil(($range/2)))){
            for($i = $max_page - $range; $i <= $max_page; $i++){echo "$i";}}
        elseif($paged >= $range && $paged < ($max_page - ceil(($range/2)))){
            for($i = ($paged - ceil($range/2)); $i <= ($paged + ceil(($range/2))); $i++){echo "$i";}}}
        else{for($i = 1; $i <= $max_page; $i++){echo "$i";}}
        next_posts_link(' 下一页 ');
        if($paged != $max_page){echo " 最后一页 ";}}
    }
	function wodewp_strimwidth($str,$start,$width ,$trimmarker ){

$output = trim(preg_replace('/^(?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$start.'}((?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$width.'}).*/s','1',$str));

return $output.$trimmarker;
}

翻查了下$wp_query这个变量,又一个全局变量,这里面查询的就是全部分类的文章,我们得在这个分页里面把你要排除的那个分类也给排除掉:

function par_pagenavi($range = 9){
        global $paged, $wp_query;
	$wp_query = new WP_Query( 'cat=-10' );
        if ( !$max_page ) {$max_page = $wp_query->max_num_pages;}
        if($max_page > 1){if(!$paged){$paged = 1;}
        if($paged != 1){echo " 返回首页 ";}
        previous_posts_link(' 上一页 ');
        if($max_page > $range){
            if($paged < $range){for($i = 1; $i <= ($range + 1); $i++){echo "$i";}}
        elseif($paged >= ($max_page - ceil(($range/2)))){
            for($i = $max_page - $range; $i <= $max_page; $i++){echo "$i";}}
        elseif($paged >= $range && $paged < ($max_page - ceil(($range/2)))){
            for($i = ($paged - ceil($range/2)); $i <= ($paged + ceil(($range/2))); $i++){echo "$i";}}}
        else{for($i = 1; $i <= $max_page; $i++){echo "$i";}}
        next_posts_link(' 下一页 ');
        if($paged != $max_page){echo " 最后一页 ";}}
    }
	function wodewp_strimwidth($str,$start,$width ,$trimmarker ){

$output = trim(preg_replace('/^(?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$start.'}((?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$width.'}).*/s','1',$str));

return $output.$trimmarker;
}

但是新的问题就又出来了,由于我们把这个变量写入了函数,那么在ID不是10的分类中调用这个分页函数的时候,就会出错,所以,我们应该把这个wp_query作为分页函数的一个参数传递过去,就可以了。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

会员评论:(0)

声明:本站所有主题/文章除标明原创外,均来自网络转载,版权归原作者所有,如果有侵犯到您的权益,请联系本站删除,谢谢!
©www.sbmzenith.com 2013-2020 All Rights Reserved.
豫ICP备15009393号