13071077710
您的当前位置: 首页 > wordpress > 非插件实现WordPress分页导航

非插件实现WordPress分页导航

时间: 2016-8-24

越少的使用插件,却能让使用者完全体验到主题的各项功能,才是真正好的主题,这也是所有主题设计者应考虑的问题,网上不使用插件实现WordPress功能的文章也很多,今天分享一下不使用插件实现分页功能的函数代码。

WordPress默认分页功能很弱,一页页翻,弄到你手麻,所以类似wp-pagenavi翻页插件,几乎是WordPress博客必装的插件,也是普及率很高的一款插件。

虽然网上有如何把wp-pagenavi插件集成到WordPress主题的教程,但wp-pagenavi插件函数代码拖沓,只是变相启用插件而已,并没有真正脱离wp-pagenavi插件。下面一段轻量级的函数,加上寥寥数行css样式就可以完全替代分页插件了。实例参考本站。

具体实现方法:

首先将下面一段函数代码添加到主题的functions.php模板文件中:

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 "<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>";}}
}

第一种样式

添加下面的css样式到你的 style.css中

.page_navi{overflow:hidden;width:100%;text-align:center}
.page_navi a{height:36px;border:1px solid #DDD;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;color:#888;text-decoration:none;line-height:36px;margin:2px;padding:3px 8px}
.page_navi a:hover,.page_navi a.current{border:1px solid #FFBB76;color:#FF7200;font-weight:bolder}

在需要显示的地方(比如主题的 index.php、archive.php、category.php、search.php)中添加下面的调用代码即可

<div class="page_navi"><?php par_pagenavi(9); ?></div>

上面的数字表示最大显示几页,你可以根据自己的需要修改。

第二种样式

添加下面的css样式到你的 style.css中

.wpagenavi{ margin:0 auto; padding-top:25px; width:100%; line-height:40px; font-family:"宋体"; border-top:1px solid #E4E4E4; text-align:center;}
.wpagenavi a:link, .wpagenavi a:visited{ margin:0 4px; padding:12px 16px; color:#666; background:#E4E4E4; -moz-border-radius:3px; -webkit-border-radius:3px; border-radius:3px; -webkit-transition:color 0.4s ease; -moz-transition:color 0.4s ease; -o-transition:color 0.4s ease; -ms-transition:color 0.4s ease; transition: color 0.4s ease;}
.wpagenavi a:hover, .wpagenavi a:active{ color:#FFF; background:#436BB8; text-decoration:none;}
.wpagenavi a.current:link, .wpagenavi a.current:visited, .wpagenavi a.current:hover{ color:#FFF; background:#436BB8; font-weight:bold;}

调用方法:

<div class="wpagenavi"><?php par_pagenavi(9); ?></div>

Copyright © 2013-2019 子歇    版权所有   网站地图