今天搜了下关于wordpress分页,有几篇写过脱离插件实现WordPress主题分页功能。
都不是自己想要的效果。介绍的内容就不多写直接代码伺候~

具体实现方法:

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

<?php
function pagination($pages = ''){
global $paged;

if(empty($paged))$paged = 1;

$prev = $paged - 1;
$next = $paged + 1;
$range = 20; // 你要显示的分页数 多余的隐藏
$showitems = ($range * 2)+1;

if($pages == '')
{
	global $wp_query;
	$pages = $wp_query->max_num_pages;
	if(!$pages)
	{
		$pages = 1;
	}
}

if(1 != $pages){
	echo "<div class='pagination'>";
	echo ($paged > 2 && $paged > $range+1 && $showitems < $pages)? "<a href='".get_pagenum_link(1)."'>&laquo;</a>":"";
	echo ($paged > 1 && $showitems < $pages)? "<a href='".get_pagenum_link($prev)."'>&lsaquo;</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)."'>&rsaquo;</a>" :"";
	echo ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) ? "<a href='".get_pagenum_link($pages)."'>&raquo;</a>":"";
	echo "</div>\n";
	}
}
?>

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

<?php
pagination($query_string);
?>

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

/*pagination*/

#top .pagination {
clear:both;
padding:5px 0 60px 0;
position:relative;
z-index:3;
}

#top .pagination span, #top .pagination a {
display:block;
float:left;
font-size:11px;
line-height:13px;
margin: 2px 2px 2px 0;
padding:6px 9px 5px 9px;
text-decoration:none;
width:auto;
}

#top .pagination .current{
font-size:11px;
padding:6px 9px 5px 9px;
}

.archiveentry .alignleft{
margin: 12px 10px 0 0;
}

» 版权所有:YaoLei's Blog » 脱离插件,实现WordPress主题分页功能
» 本文链接:http://www.yaolei.info/archives/60