之前在Wordpress的zww line主题不用插件实现WordPress分页导航的方法一文中介绍了如何通过代码实现分页导航的方法,但是当时由于技术有限,代码虽然搞出来了,却需要手动的将分页导航代码逐个添加到各个文件中,感觉很麻烦。现在有了更好的方法,只需在functions.php文件里定义好了,在别的文件直接调用就行了,省得来回复制粘贴一大段代码了。
方法如下,将下面的代码添加到主题文件functions.php里面最后一行“?>”前面即可。

  1. //分页导航
  2. function pagination($query_string){
  3. global $posts_per_page, $paged;
  4. $my_query = new WP_Query($query_string ."&posts_per_page=-1");
  5. $total_posts = $my_query->post_count;
  6. if(emptyempty($paged))$paged = 1;
  7. $prev = $paged - 1;
  8. $next = $paged + 1;
  9. $range = 5; // 修改数字,可以显示更多的分页链接
  10. $showitems = ($range * 2)+1;
  11. $pages = ceil($total_posts/$posts_per_page);
  12. if(1 != $pages){
  13.     echo "<div class='pagination'>";
  14.     echo ($paged > 2 && $paged+$range+1 > $pages && $showitems < $pages)? "<a href='".get_pagenum_link(1)."' class='fir_las'>最前</a>":"";
  15.     echo ($paged > 1 && $showitems < $pages)? "<a href='".get_pagenum_link($prev)."' class='page_previous'>« 上一页</a>":"";
  16.     for ($i=1; $i <= $pages; $i++){
  17.     if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )){
  18.     echo ($paged == $i)? "<span class='current'>".$i."</span>":"<a href='".get_pagenum_link($i)."' class='inactive' >".$i."</a>";
  19.     }
  20.     }
  21.     echo ($paged < $pages && $showitems < $pages) ? "<a href='".get_pagenum_link($next)."' class='page_next'>下一页 »</a>" :"";
  22.     echo ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) ? "<a href='".get_pagenum_link($pages)."' class='fir_las'>最后</a>":"";
  23.     echo "</div>n";
  24.     }
  25. }

然后在需要显示分页导航的地方添加如下代码(通常需要添加到如下文件:index.php,archive.php,search.php):

  1. <div class="navigation"><?php pagination($query_string); ?></div>

至于css代码,我只给个示例,具体要什么样子,可以自己试着更改数据,比如换个颜色啥的,都挺简单的:

  1. /** 翻页 **//** 翻页 **/
  2. .navigation { Cialis
  3.     float:rightright;
  4.     width:700px;
  5.     margin: 5px 0 5px 0;
  6.     text-align:rightright;
  7.     }
  8. .navigation_b {
  9.     float:rightright;
  10.     width:700px;
  11.     margin: 0 5px 0 0;
  12.     text-align:rightright;
  13.     }
  14. .pagination {
  15.     line-height:25px;
  16.     }
  17. .pagination span, .pagination a {
  18.     font-size:12px;
  19.     margin: 2px 6px 2px 0;
  20.     background:#fff;
  21.     border:1px solid #ccc;
  22.     color:#787878;
  23.     padding:2px 5px 2px 5px;
  24.     }
  25. .pagination a:hover {
  26.     background: #0196E3;
  27.     border:1px solid #fff;
  28.     color:#fff;
  29.     }
  30. .pagination .current {
  31.     background: #0196E3;
  32.     color:#fff;
  33.     font-size:12px;
  34.     padding:2px 5px 2px 5px;
  35.     }
  36. .navigation a,.navigation_b a{
  37.     background:#fff;
  38.     padding:2px 5px 2px 5px;
  39.     border:1px solid #ccc;
  40.     }