今天,把博客的链接改成了伪静态,发现以前写得分页失效了,查看了一下代码,发现以前的程序是用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作为分页函数的一个参数传递过去,就可以了。
上一篇: 安全联盟真得安全吗
下一篇: wordpress 主循环嵌套循环
游客回答:(0)