本文最后更新于 1009 天前,其中的信息可能已经有所发展或是发生改变。
wordpress的主题开发,碰到最让我头痛的就是列表页的分页功能,以及下方的分页页数的样式自定义。花了点时间,写了一个自定义分页函数,以后就可以复制粘贴了。
自定义分页函数
该函数需要搭配query_posts()来使用,所有代码需要放进functions.php文件中
该函数需要搭配query_posts()来使用,所有代码需要放进functions.php文件中
函数说明:
1、$range设定列表显示的最大分页个数,即一个列表页下方显示的分页个数。
2、分页范围内,当前列表高亮class为’hover’,可以自定义修改
3、当前页小于等于分页范围中间的页数时,整体分页不会偏移。
4、当前页大于分页范围中间的页数时,整体分页向右偏移,页数各自+1。当前页高亮始终处于分页范围的中间,且整体不会超出最大分页数。
5、调用方法是,在wordpress列表页模板的查询段代码后面,可以使用<div></div>来进行包裹。<div><?php pageNavLink();?></div>
//分页li标签
function echo_li_a($i,$paged){
if($i == $paged){echo "<a class='hover'>".$i."</a>";}
else{echo "<li><a href='".get_pagenum_link($i)."'>$i</a></li>";}
}
function pageNavLink($range = 5) {//分页范围,设为奇数具有对称性
global $paged,$wp_query;
if (!$max_page) {$max_page = $wp_query->max_num_pages;}//产生的最大分页数
$startRange = ceil($range/2);//分页范围中间的位置
if($max_page > 1) {
if(!$paged) $paged = 1;//首页为0,初始化为1
if($paged > 1){//如果不在首页
echo "<li><a href='".get_pagenum_link(1)."'>首页</a></li>";
echo "<li><a href='".get_pagenum_link($paged-1)."'>上一页</a></li>";
}
else{echo "<li><a>首页</a></li>";}//如果在首页
if($max_page > $range) {//产生的分页数超过范围
for($i = 1;$i <= $range;$i++){
if($paged > $startRange && $paged <= $max_page - $startRange + 1){
//中间。存储$i的值,当前页数减去中间页数,再加上$i得到开始页数,然后循环递增
$position = $i;$i = $paged - $startRange + $i;
echo_li_a($i,$paged);$i = $position;
}
elseif($paged <= $startRange){echo_li_a($i,$paged);}//前面
else{
//后面。存储$i的值,最大页数减去范围页数,再加1得到开始页数
$position = $i;$i = $max_page - $range + $i;
echo_li_a($i,$paged);$i = $position;
}
}
}
//产生的分页数未超过范围
else{for($i = 1;$i <= $max_page;$i++){echo_li_a($i,$paged);}}
if($paged == $max_page){echo "<li><a>末页</a></li>";}//如果在末页
else{//不在末页
echo "<li><a href='".get_pagenum_link($paged+1)."'>下一页</a></li>";
echo "<li><a href='".get_pagenum_link($max_page)."'>末页</a></li>";
}
}
}
请问您,页头上面首页什么的,还有就是“技术分类”那项如何做出来的?麻烦了!!
是通过管理后台左侧列表,外观》菜单中进行添加的。按照你的描述,这个称为导航栏,如果你对于导航栏有定制化需求,例如你说的 “技术分类” 这种;我可以给你看一下我自己写的函数,它用于调用菜单中的设置项,并且生成子菜单。如果有需要的话,请联系我。