WordPress新建页面调用分类日志翻页问题
宝宝健康成长网有几个页面是专门用来调用某一分类日志的,譬如林林的故事坊以及宝宝微博等页面。但这几个新建页面都遇到一个问题,即无法实现翻页功能,即添加 pagenavi function 语句不起作用。随着文章的增多,页面被拉的越来越长,严重影响美观。今天读到一段php语句,解决了WordPress 页面调用某分类日志后无法分页的问题。
我们新建一个页面并调用某分类文章一般是这样。
<?php
/*
Template Name: liuyian
*/
?><?php get_header(); ?>
<?php query_posts(‘cat=1&showposts=10′); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class=”post” id=”post-<?php the_ID(); ?>“>
…….这里略去,各不相同
</div>
<?php endwhile; ?>
<div id=”pagenavi”><?php if (function_exists(‘pagenavi’)) : ?><?php pagenavi(); ?>
<?php else : ?>
<div class=”alignleft”><?php next_posts_link(‘« 前一页’) ?></div>
<div class=”alignright”><?php previous_posts_link(‘后一页 »’) ?></div>
<?php endif; ?>
</div>
<?php else : ?>
<?php endif; ?>
</div>
/*
Template Name: liuyian
*/
?><?php get_header(); ?>
<?php query_posts(‘cat=1&showposts=10′); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class=”post” id=”post-<?php the_ID(); ?>“>
…….这里略去,各不相同
</div>
<?php endwhile; ?>
<div id=”pagenavi”><?php if (function_exists(‘pagenavi’)) : ?><?php pagenavi(); ?>
<?php else : ?>
<div class=”alignleft”><?php next_posts_link(‘« 前一页’) ?></div>
<div class=”alignright”><?php previous_posts_link(‘后一页 »’) ?></div>
<?php endif; ?>
</div>
<?php else : ?>
<?php endif; ?>
</div>
但以上代码是无法分页的,我们需要修改这段代码
<?php query_posts('cat=1&showposts=10'); ?>
为如下代码:
<?php$limit = get_option(‘posts_per_page’);
$paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;
query_posts(‘cat=1&showposts=’ . $limit=10 . ‘&paged=’ . $paged);
$wp_query->is_archive = true; $wp_query->is_home = false;
?>
小说明下,limit=10为每页显示的文章数目,cat=1 为分类的 ID,用category_name=XXX亦可。
如果在主循环前已经调用过一次query_posts,可能会出现分页无法正确指向,始终是第一页的问题。解决方法:开始处加上<?php wp_reset_query();?>
放个演示>>
相关阅读: