您的位置:首页 > 其它

WordPress中无需插件实现文章列表分页

2012-10-09 17:41 447 查看
1.首先将如下代码加入function.php中,默认每页显示10条

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


2.分页样式设计如下,加入引用的css中

/** 分页样式**/
.page_navi{width:100%;height:36px;line-height:36px;text-align:center;overflow:hidden;padding-top:1em;}
.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;}


3.在具体页面调用,比如search.php(搜索列表页),category.php(新闻分类列表页)

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


默认分类页面调用的是loop.php中的查询,分页的话需设置如下,注意将分页参数加入查询 paged=地址栏传递值

<?php
// Start the Loop.
$options = get_option( 'coraline_theme_options' );
$query_string=$query_string."&cat=".$_GET["cat"]."&orderby=post_modified&order=DESC&paged=".$_GET["paged"];
query_posts($query_string);
while ( have_posts() ) : the_post(); ?>

那么分类页面调用分页如下

<?php
$category_description = category_description();
if ( ! empty( $category_description ) )
echo '<div class="archive-meta">' . $category_description . '</div>';

get_template_part( 'loop', 'category' );
?>
<div class="page_navi"><?php par_pagenavi(9); ?></div>


搜索相对较为简单 直接在循环结束 调用如下

<?php endif; ?>
</table>
</div>
<div class="page_navi"><?php par_pagenavi(9); ?></div>
<div class="block3"></div>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: