欢迎来到元素模板ys720.com,本站提供专业的织梦模板PBOOTCMS模板网站模板网站修改/网站仿站
当前位置:主页 > 程序教程 > wordpress教程 >
wordpress教程

非插件纯代码实现WordPress分页导航

(元素模板) / 2014-04-20 09:43
   在很多WordPress主题中,分页导航都是采用传统的“上一页”“下一页”两个链接,但这种方法并不实用,我们希望把他变成“1 2 3 ...”具体的页码。有一个实现方法是使用WP-Pagenavi插件,但这么一个小小的功能,我们希望把它整合进主题中,以减少对插件的依赖。

  具体的实现方法是:

1.首先在主题functions.php中加入以下代码:
 

function pagination($query_string){   
global $posts_per_page, $paged;   
$my_query = new WP_Query($query_string ."&posts_per_page=-1");   
$total_posts = $my_query->post_count;   
if(empty($paged))$paged = 1;   
$prev = $paged - 1;   
$next = $paged + 1;   
$range = 2; // only edit this if you want to show more page-links   
$showitems = ($range * 2)+1;   
  
$pages = ceil($total_posts/$posts_per_page);   
if(1 != $pages){   
echo "<div class='pagination'>";   
echo ($paged > 2 && $paged+$range+1 > $pages && $showitems < $pages)? "<a href='".get_pagenum_link(1)."'>最前</a>":"";   
echo ($paged > 1 && $showitems < $pages)? "<a href='".get_pagenum_link($prev)."'>上一页</a>":"";   
  
for ($i=1; $i <= $pages; $i++){   
if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )){   
echo ($paged == $i)? "<span class='current'>".$i."</span>":"<a href='".get_pagenum_link($i)."' class='inactive' >".$i."</a>";   
}   
}   
  
echo ($paged < $pages && $showitems < $pages) ? "<a href='".get_pagenum_link($next)."'>下一页</a>" :"";   
echo ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) ? "<a href='".get_pagenum_link($pages)."'>最后</a>":"";   
echo "</div>\n";   
}   
}  

接下来用下面的代码替换原来模板中默认翻页代码或分页插件代码:

<?php pagination($query_string); ?>  

最后再把下面的样式代码添加到style.css中,刷新一下页面,与使用插件实现的翻页效果一样。

.pagination{   
line-height:23px;   
}   
.pagination span, .pagination a{   
font-size:12px;   
margin: 2px 6px 2px 0;   
background:#fff;   
border:1px solid #e5e5e5;   
color:#787878;   
padding:2px 5px 2px 5px;   
text-decoration:none;   
}   
.pagination a:hover{   
background: #8391A7;   
border:1px solid #fff;   
color:#fff;   
}   
.pagination .current{   
background: #fff;   
border:1px solid #8d8d8d;   
color:#393939;   
font-size:12px;   
padding:2px 5px 2px 5px;   
}  

上面的样式是我目前用的主题样式,根据不同的主题修改一下边框与背景,基本就可以了,之后删除分页插件。

Copyright @ 2013-2021 元素模板 www.ys720.com All Rights Reserved. 版权所有 元素模板 www.ys720.com