使用query_posts()函数造成分页插件不工作

十二月 13
磊子 2011年 3 条评论

这些天一直在整理wordpress函数,所以有几天没有写文章了,前些天有位朋友跟我说网站分页不管用了,点了之后一直都是显示的首页内容。当时我就知道query_posts()这个函数又开始作怪了。所以暂时就把它删了,今天查了下资料把解决办法总结了一下。

先说下原因,磊子想使用query_posts()函数(放在loop[循环]之前),来控制查询条件,比如想把某个分类不显示在首页中,但是使用之后wp_query会将传递的参数生成一个新的sql查询语句,而忽略了url上的传递的参数,比如你点击第二页的时候你的url参数中会出现2这个数字。由于你的页数传递不过去造成每个分页内容都是一样的,所以我们需要将这个参数通过query_posts()给传递过去。

第一种比较简单的方法,如果你是自定义的模板分页不工作可以使用下面的方法。

<?php 

query_posts( array( 'cat' => -8, 'paged' => get_query_var('page') ) );

?>
//cat是分类ID
//get_query_var(page)获取当前分页的值,比如页数2。

如果不是上面的情况那就使用这个方法将page换成paged,如下

<?php

query_posts(array( 'cat' => -8, 'paged' => get_query_var('paged') ));

?>

整理起来通用的方法就是

$paged = 1;
if ( get_query_var('paged') ) $paged = get_query_var('paged');
if ( get_query_var('page') ) $paged = get_query_var('page');

这样问题就解决了。在网上看了下有不少方法不过都没有这个方法快捷,还是代码简洁点好。看着清楚,如果上面不管用了那再考虑其他方法吧,大家可以去搜搜看,磊子就不贴出来了。我得继续折腾我的网站了,呵呵!

» 版权所有©转载必须以链接形式注明作者和原始出处:磊子的博客 » 使用query_posts()函数造成分页插件不工作
» 地址:( Ctrl+C 复制 )
» 如果对本站感兴趣,请到网站右下方订阅本站,将为你带来更多精彩和实用的文章
» 如果您对这篇文章感兴趣,不妨小小的 捐助(Donate)一下博主吧,不管多少都是对博主最大的支持和鼓励哟,博主-磊子感谢大家的支持!!!

3 条留言 其中:访客:2 条, 博主:1 条

  1. 夜光说:

    遇到过一次,不过不需要这样呀,如果是index.php或archive.php可以直接用while (have_posts()) : the_post();

    • 磊子说:

      直接用肯定可以的。那要做限定查询条件是怎么做的呢?比如限定首页不显示某个分类!

  2. 赞,多谢分享

说点什么吧




wireless earbuds moscow mule mugs bluetooth speakers waterproof camera best wireless earbuds best vacuum cleaner best drugstore foundation best dishwasher best waist trainer wireless headphones best vacuum 0594918 best bluetooth earbuds waterproof bluetooth speaker tattoo cover up action camera
订阅本站