WordPress调用分类或标签后不能分页的解决办法

用Thematic主题的时候,很轻松搞定了在Page页面调用某个标签下的内容,而且支持分页,换主题后用同样的代码,不知道是什么原因,点击下一页的时候,始终显示第一页的内容,就是无法显示更多的内容,总之就是不能分页,这个问题让Nie搞了好几天,一度以为是主题的原因,拼命在主题里找分页的代码,最终以失败告终,都放弃了,今天又闲来无事,换个思路从外部找原因,再次Google,终于找到解决办法。

原来是因为query_posts()函数的问题,既然原因找到了,解决起来就很轻松了。以下代码是之前文章:WordPress在Page页面中调用某个分类或标签支持分页里的代码。

<?php
$args=array(
'tag_id' => 2, // 标签ID,如果是分类把tag_id换成cat
'posts_per_page' => 10, // 单页显示文章数
);
query_posts($args);
if(have_posts()) : while (have_posts()) : the_post();
?>
< h3><a href="<?php the_permalink() //获取文章链接 ?>"><?php the_title(); //获取文章标题 ?></a></h3>
< div class="entry-content"><?php echo mb_strimwidth(get_the_content(), 0, 200, '……'); //获取文章200字摘要 ?>
< /div>
< ?php endwhile; ?>
< div class="nav-previous"><?php next_posts_link() //前一页 ?></div>
< div class="nav-next"><?php previous_posts_link() //后一页 ?></div>
< ?php endif; wp_reset_query(); ?>

把上面的代码替换掉一部分就可以,最终得到以下代码。

<?php
$limit = get_option('posts_per_page');
//tag_id为标签ID可换成分类cat,limit处为单页显示文章数量
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts('tag_id=16&showposts=' . $limit=10 . '&paged=' . $paged);
$wp_query->is_archive = true; $wp_query->is_home = false;
if(have_posts()) : while (have_posts()) : the_post();
?>
< h3><a href="<?php the_permalink() //获取文章链接 ?>"><?php the_title(); //获取文章标题 ?></a></h3>
< div class="entry-content"><?php echo mb_strimwidth(get_the_content(), 0, 200, '……'); //获取文章200字摘要 ?>
< /div>
< ?php endwhile; ?>
< div class="nav-previous"><?php next_posts_link() //前一页 ?></div>
< div class="nav-next"><?php previous_posts_link() //后一页 ?></div>
< ?php endif; wp_reset_query(); ?>

替换代码后成功解决调用分类或标签后不能分页的问题,具体效果可以参考今日杂记的iPhone技巧免费页面。

我猜~这些文章你可能也感兴趣

Nie
Tags

相关文章

*


Top