自定义分类不适用于新WP_QUERY中的POSTS_PER_PAGE(分页问题)

时间:2011-05-04 作者:J. Millington

好的,我第二次搞乱了自定义分类法,在这两种情况下,我都遇到了这个问题,在query\\u posts或WP\\u查询场景中使用posts\\u per\\u page参数。。基本上,如果我对每页的帖子设置了自定义限制,单击“下一步”或“上一步”按钮会显示404个错误。。无论我使用的是自定义permalink结构还是任何默认值,结果都是一样的。我成功控制页面帖子数量的唯一方法是通过仪表板中的阅读设置。

我发现有很多人提到过这个问题,但除了上面提到的仪表板设置之外,还没有找到有效的解决方案:

wordpress.org/support/topic/custom-taxonomy-navigation-problem-paged1-works-paged2-doesnt?replies=8#post-2093828

core.trac.wordpress.org/ticket/16168

wordpress.org/support/topic/custom-taxonomies-with-pagination-getting-404-page-not-found?replies=6#post-2093414

下面是我正在处理这个问题的网站:

http://www.purekreation.com(单击导航中的任何部分,然后尝试导航到底部的前几页)

这是我当前的(非工作)代码:

    <?php get_header(); ?>

    <div id="art">

        <?php global $query_string, $paged, $wp_query, $wp;
        $count = 0;
        $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
        echo $paged;
        ?>
        <?php $term = get_query_var(\'term\'); echo $term;?>
        <?php $tax = get_query_var(\'taxonomy\'); echo $tax;?>
        <?php
        $taxquery=new WP_Query(array(\'tax_query\'=>array(array(\'taxonomy\'=>$tax,\'field\'=>\'slug\',\'terms\'=>$term)),\'post_type\'=>\'art\',\'showposts\'=>1,\'paged\'=>$paged));
        while ( $taxquery->have_posts() ) : $taxquery->the_post(); ?>

    <?php $genre = wp_get_post_terms($post->ID, \'genre\');?>
        <div id="post-<?php the_ID(); ?>" <?php post_class(\'post-\'.$genre[0]->slug.\' post-art\');?>> 
            <h3 class="work-title"><?php the_title();?></h3>
            <?php get_the_10(); ?>
            <div class="the-content">
                <?php the_content(); ?>
            </div>
            <footer class="COL-10 clear">
                <small class="post-meta"><?php $terms = get_the_term_list( $post->ID, \'genre\', \'Portfolio: \', \' \', \'\' );  echo $terms;?></small>
                <small class="post-meta">Project: <?php the_tags( \'\',\', \',\'\');?></small>
                <small class="post-meta">Client: <?php $meta = get_post_meta($post->ID, \'client\', true); if($meta==\'\'){echo \'Self\';}else{echo $meta;}?></small>
                <small class="post-meta right"><a href="#masthead">Back to top</a></small>
                <div class="dash"></div>
            </footer>
        </div><!-- #post-## -->    
        <?php $count++; ?>
        <?php endwhile; ?>
                        <div id="nav-below" class="pagination">
        <?php if($taxquery->max_num_pages>1){?>
            <?php
            for($i=1;$i<=$taxquery->max_num_pages;$i++){?>
                    <a href="<?php bloginfo(\'url\');?>/?<?php echo $tax;?>=<?php echo $term;?>&<?php echo \'paged=\' . $i; ?>" <?php echo ($paged==$i)? \'class="selected"\':\'\';?>><?php echo $i;?></a>
                    <?php
            }
            if($paged!=$taxquery->max_num_pages){?>
                    <a href="<?php bloginfo(\'url\');?>/?<?php echo $tax;?>=<?php echo $term;?>&<?php echo \'paged=\' . $i; //next link ?>">></a>
            <?php } ?>
    <?php } ?>
                        </div>
            <?php // Reset Post Data
            wp_reset_postdata();
             // End the loop. Whew.?>
    </div><!-- end #art -->
    <?php get_footer(); ?>
我不是最熟练的PHP高手,但我对Wordpress非常了解,这个问题让我几乎失眠。如果有人对此事有任何意见,我们将不胜感激。

1 个回复
SO网友:Milo

应该是。。

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

WP_Query in codex:

分页注意:应该设置get\\u query\\u var(\'页面\');如果希望查询使用分页。自Wordpress 3.0.2以来,您可以使用get\\u query\\u var(\'page\'),而不是get\\u query\\u var(\'paged\')。WP\\u Query()的分页参数“paged”保持不变。

结束

相关推荐

Pagination with custom loop

我的问题可能是Pagination not working with custom loop, 但有一种不同。我使用自定义循环来显示flash游戏。我想按类别在游戏页面上分页。类别php:<?php if ($cat) { $cols = 2; $rows = 4; $paged = ((\'paged\')) ? get_query_var(\'paged\') : 1; $post_per_page = $cols * $rows; // -1 s