很多wordpress主题原来都没有分页导航功能,
只有新的文章和旧的文章两个连接按钮,
要是找以前的文章,就得一阵翻,
WordPress下的分页插件很多,
像PageNavi, Pagebar, WP Page Numbers等等,
这些插件能够让你的wordpress增加多样式的导航, 同时也带上一定的样式效果,
不过是用插件博客的效率就会降低,
尤其是我这样的免费空间,内存分配有限,
如果插件多了就会出现内存错误,连blog就进不了,
所以代码实现才是王道.
现在开始.
将以下代码插入到主题的functions.php文件中(<?php ?>标签内部),
function wp_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++){ if($i==$paged) echo "<a class='current'>$i</a>"; else echo "<a href='" . get_pagenum_link($i) ."'>$i</a>"; } } elseif($paged >= ($max_page - ceil(($range/2)))){ for($i = $max_page - $range; $i <= $max_page; $i++){ if($i==$paged) echo "<a class='current'>$i</a>"; else echo "<a href='" . get_pagenum_link($i) ."'>$i</a>"; } } elseif($paged >= $range && $paged < ($max_page - ceil(($range/2)))){ for($i = ($paged - ceil($range/2)); $i <= ($paged + ceil(($range/2))); $i++){ if($i==$paged) echo "<a class='current'>$i</a>"; else echo "<a href='" . get_pagenum_link($i) ."'>$i</a>"; } } } else{ for($i = 1; $i <= $max_page; $i++){ if($i==$paged) echo "<a class='current'>$i</a>"; else echo "<a href='" . get_pagenum_link($i) ."'>$i</a>"; } } next_posts_link(' 下一页 '); if($paged != $max_page){ echo "<a href='" . get_pagenum_link($max_page) . "' class='extend' title='跳转到最后一页'> 最后一页 </a>"; } } }
然后再所有文章列表页的所需位置添加以下代码(index.php、archive.php、category.php、search.php),
<div class="navigation"><?php wp_pagenavi(); ?></div>
这样就已经添加了分页导航功能了, 不过每个主题都不一样,比如我的,自带判断, 如果functions.php里面有类似上面功能的函数,就会显示分页导航, 如果没有就会显示新旧文章链接, 所以我就没有把代码加入index.php、archive.php、category.php、search.php这些文件这一步.
然后美化一下,将以下代码加入主题的style.css文件(请自行调教),
.navigation { font-size: 1.3em; font-weight: bold; text-shadow: 0 1px 0 #fff; width:100%; line-height:36px; text-align:center; overflow:hidden; } .navigation a { padding:3px 8px; margin:2px; text-decoration:none; color:#888; border:1px solid #ccf; } .navigation a:hover, .navigation a.current { border:1px solid #3c5978; color:#113c68; font-weight:bolder; background-color:#679ad0; text-shadow: none; }
这样大概效果就有了.
如果是复制的我上面的代码,下面应该可以不用做了,
接下来添加本页不可点击效果,在functions.php中查找,
echo “<a class="’current’”;" href="’”">$i</a>”;
共有四处,全部替换为,
if($i==$paged) echo “<a class="’current’">$i</a>”; else echo “<a href="’”">$i</a>”;
该段代码先判断是否本页,如果是则不再<a>标签内部添加href属性.
至此已修改完毕,看过我之前文章的读者做起来应该不难.
Over
不会弄,总是没显示,我不是太懂代码,能教下吗
之前是自己做好以后才写的文章,代码可能有点乱,我把代码又整理了一下,你再试下看看,让你很困扰,实在抱歉
谢谢分享 正着这个代码呢哈 :smilies03:
采用的时候自己检查一下哦,我这也是复制过来的,
编辑的时候在可视化和HTML模式切换可能造成标点符号错误 :smilies33:
谢谢分享了! :smilies24: