我们都知道实现wordpress分页导航的插件有很多,并且WP自带的就“较早文章”和“最近文章”两个内置函数,今天展示的这段代码是不用插件来实现wordpress分页导航,主要就是把分页功能集成到主题当中。
一、添加功能代码至 functions.php(注意放在php循环内即<?php ?>标签内)
function par_pagenavi($range = 5){
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 "<a href='" . get_pagenum_link(1) . "' class='extend' title='跳转到首页'> 返回首页 </a>";}
previous_posts_link(' 上一页 ');
if($max_page > $range){
if($paged < $range){for($i = 1; $i <= ($range + 1); $i++){echo "<a href='" . get_pagenum_link($i) ."'";
if($i==$paged)echo " class='current'";echo ">$i</a>";}
} elseif ($paged >= ($max_page - ceil(($range/2)))){
for($i = $max_page - $range; $i <= $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'";
if($i==$paged)echo " class='current'";echo ">$i</a>";}
} elseif ($paged >= $range && $paged < ($max_page - ceil(($range/2)))){
for($i = ($paged - ceil($range/2)); $i <= ($paged + ceil(($range/2))); $i++){echo "<a href='" . get_pagenum_link($i) ."'";if($i==$paged) echo " class='current'";echo ">$i</a>";}}
} else {
for($i = 1; $i <= $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'";
if($i==$paged)echo " class='current'";echo ">$i</a>";}
}
next_posts_link(' 下一页 ');
if($paged != $max_page){echo "<a href='" . get_pagenum_link($max_page) . "' class='extend' title='跳转到最后一页'> 最后一页 </a>";}
}
}
二、添加美化代码至主题style.css
.page_navi a{padding:3px 8px;margin:2px;text-decoration:none;color:#888;border:1px solid #ccf;}
.page_navi a:hover,.page_navi a.current{border:1px solid #356aa0;color:#356aa0;font-weight:bolder;}
三、添加调用代码至主题index.php、archive.php、category.php、search.php中相应的位置。
<div class="page_navi"><?php par_pagenavi(9); ?></div>
这样就可以省下使用一个插件的,不过有人认为使用插件和集成到主题中加载时间是相同的,我个人也比较纠结,不过个人还是倾向于集成到主题当中。
原文地址:http://www.muxiaofei.com/891.html