亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

WordPress分頁不會轉到最后一頁

WordPress分頁不會轉到最后一頁

PHP
青春有我 2022-01-14 16:59:37
我正在嘗試WP_Query為我的循環使用自定義,以限制每頁顯示的帖子數量。但是,分頁功能似乎不尊重我設置的這個限制。這是我的代碼:$current_page = (get_query_var('paged')) ? get_query_var('paged') : 1;$author_post_args = array(    'post_type'      => 'post',    'author_name'    => $curauth->user_nicename,    'posts_per_page' => 5,    'paged' => $current_page,    'orderby'        => 'modified',    'no_found_rows'  => true,    'ignore_sticky_posts' => '1');$loop = new WP_Query( $author_post_args );$temp_query = $wp_query;$wp_query   = NULL;$wp_query   = $loop;if($loop->have_posts()):    while($loop->have_posts()): $loop->the_post(); ?>        <div class="post-list">            <?php             $title = the_title("", "", false);            ?>            <h2><a href="<?php the_permalink();?>"><?php echo $title; ?></a></h2>            <time>Last Updated — <?php the_modified_date('F j, Y'); ?></time>            <p><?php the_excerpt(); ?></p>        </div><?php    endwhile;endif;wp_reset_postdata();previous_posts_link('<i class="fas fa-backward"></i> Newer Posts');next_posts_link('Older Posts <i class="fas fa-forward"></i>', $loop->max_num_pages);$wp_query = NULL;$wp_query = $temp_query;我在網站上搜索了一個解決方案,發現了這個問題。該解決方案似乎適用于 OP,但不適用于我。就我而言,每頁的帖子限制為 5。但是,頁數仍然停留在 3。我無法轉到第 4 頁并出現Not Found錯誤。作者共有 26 篇文章。因此,我應該能夠轉到第 6 頁。頁數仍然由函數根據Settings > Reading > Blog pages show at mostWordPress 儀表板中指定的值確定,該值設置為 10。我究竟做錯了什么?
查看完整描述

1 回答

?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

問題是 WordPress 假設您仍然期望每頁有 10 個帖子,因為您的查詢實際上是頁面中間的獨立查詢。您是否只是想限制此特定帖子類型每頁的帖子數量?或者你還有什么想做的嗎?


您可以使用pre_get_posts以更簡潔的方式實現此目的


function tweak_posts_per_page( $query ) {

    if( !is_admin() && $query->is_author() && $query->is_main_query() ) :

        $query->set( 'posts_per_page', 5 );

        $query->set( 'orderby', 'modified' );

        return;

    endif;

}


add_action('pre_get_posts', 'tweak_posts_per_page');

將此代碼添加到您的 functions.php 文件或類似文件中;如果需要,您可以在 IF 語句中添加額外的條件來處理何時應用此調整。你應該會發現你的分頁在那之后會起作用。


pre_get_posts 用于調整 WordPress在運行查詢之前將運行的查詢


此外,您可以完全從代碼中刪除查詢 - 只需將循環保留在其中以循環通過現在調整后的主查詢。


編輯:添加了附加的“is_author”條件語句,并添加了“orderby”調整


查看完整回答
反對 回復 2022-01-14
  • 1 回答
  • 0 關注
  • 171 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號