wordpress分页不起作用?

时间:2011-01-29 13:00:18

标签: php wordpress

我的代码是

我在循环之前编写了这段代码用于分页

$arrangement = get_cat_ID('arrangement');
$antiquarianism = get_cat_ID('antiquarianism');

$paged = (get_query_var('page')) ? get_query_var('page') : 1;

 print_r($paged);
$query = query_posts(array(

        'page'  => intval($paged),
 'category__not_in' => array($arrangement, $antiquarianism ) ));

每次打印1。

2 个答案:

答案 0 :(得分:2)

您是否尝试过$paged的var_dump?或按照此处的建议重置get_query_var('page')worpress support

答案 1 :(得分:1)

之前我遇到过类似的问题。不幸的是,这可能是很多事情。

一种可能性是处理与Wordpress“循环”相关的页面查询。我刚刚阅读了query_posts的文档并发现了这个:

  

保留原始查询(分页等)   默认情况下,运行query_posts将完全覆盖当前页面上的所有现有查询变量。分页,类别日期等将丢失,只会使用您传递给query_posts的变量。

     

如果要保留原始查询,可以将原始查询数组合并到参数数组中:

global $wp_query;
query_posts(
    array_merge(
        array( 'cat' => 1 ),
        $wp_query->query
    )
);

http://codex.wordpress.org/Function_Reference/query_posts

我不确定这是否会影响你,但值得拍摄。

编辑:你也可以尝试在'循环'关闭后(即在主结束之后)运行一个单独的get_post循环。这在过去解决了我的问题

<?php 
// custom pagination improvements
    //http://codex.wordpress.org/Template_Tags/get_posts
     $lastposts = get_posts('numberposts=50&order=DESC&orderby=ID');
     setup_postdata($lastposts);
     $valid_posts = array ();
     $lastposts = (array) $lastposts;
     foreach ($lastposts as $post) {
        $post = (array) $post;
        // Sort through arrays here - get the next valid post
        switch (true) {
            case ($post['post_status'] == 'publish' && $post['ID'] < $curr_pid[0]):
                array_push($valid_posts, $post);
                break;
            default:
                break;
        }
     }
     $nextArray = $valid_posts[0];
?>
 <ul class="pagination">
    <li class="next"><a href="<?php echo(get_permalink($nextArray['ID'])); ?>"><?php echo ($nextArray['post_title']); ?></a></li>
</ul>

这是我为首页编写的一些代码,因此它只显示“下一步”,然后根据我的过滤器链接到下一篇文章(而不是Wordpress认为应该接下来的内容)。您当然可以使用foreach循环回显多个带数字的链接。这会使事情变得复杂一点,但它可以让你非常精细地控制分页中发生的事情。

这对你有帮助吗?