問題描述

二十一主題

在主頁上,我已經成功地過濾了循環,只顯示”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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。