
今天,把博客的链接改成了伪静态,发现以前写得分页失效了,查看了一下代码,发现以前的程序是用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)