问题描述

二十一主题

在主页上,我已经成功地过滤了循环,只显示”Featured” 帖子,分页功能通过导航链接正常工作。我试图在另一个页面上显示所有类别的帖子,名为”Unfiltered.” 为什么导航链接在此页面上使用时会消失?

编辑:如果我将’paged’ 的值更改为’1’ 或’2’,我会得到 10 个帖子,我会期望,所以’paged’ 似乎工作,取决于我设置的值,只是不是当我设置为 get_query_var(‘paged’)

            <?php /* $paged = ( get_query_var('page') ) ? get_query_var('page') : 1;*/

            $unfiltered_query = new WP_Query ( 

            array (
                'posts_per_page' => 10,
                'paged' =>  get_query_var( 'paged' )
            ) 

        );?>

        <?php if ( $unfiltered_query->have_posts() ) : ?>

            <?php twentyeleven_content_nav( 'nav-above' ); ?>

            <?php /* Start the Loop */ ?>

                <?php while ( $unfiltered_query->have_posts() ) : $unfiltered_query->the_post(); ?>

                <?php get_template_part( 'excerpt', get_post_format() ); ?>

            <?php endwhile; ?>

            <?php twentyeleven_content_nav( 'nav-below' ); ?>

最佳解决方案

twentyeleven_content_nav()使用主查询对象 $wp_query 。您将需要使用 $wp_query 变量,而不是 $unfiltered_query,然后 wp_reset_query()恢复原始的 $wp_query(可以在 $wp_the_query 中找到,您应该避免直接触摸) 。

只要你小心地恢复原来的查询,你的形状就很好。

我将提交一个修补程序到核心,允许 twentyeleven_content_nav()可选择使用它可以用于其计算的查询对象。

次佳解决方案

WP_Query 的参数是 paged,但是查询 var 是 page,最后没有’d’ 。

'paged' =>  get_query_var( 'paged' )

应该:

'paged' =>  get_query_var( 'page' )

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。