自訂迴圈query-4-page問題與最終實作

不知道為什麼會壞掉也不知道為什麼修好了總之先記錄一下(爆)

發端

首先,這個問題之前發生過在第三方plugin的block過,但我當初只覺得這大概是第三方的原罪吧可能真的有些東西拿不到…(素人發言)結果今天用WP內建的自訂迴圈試了發現一樣會出事…!

問題描述

使用自訂迴圈設定顯示文章時,搜尋結果的URL會為/?query-4-page=xxx(頁碼)
在admin端看不會有問題,但不知為什麼登出後的使用者都無法access
精確來講會回到category首頁

ex.
/memo << 這是category首頁(也就是第一頁)
/memo?query-4-page=2 << 這是我們要access的頁面(即第二頁)

結果access了後者後會redirect?到前者的頁面

處理過程紀錄

由於網站已經架設一段時間,這個時候也只能硬著頭皮用骯髒的環境找問題

  1. 或許是被一些最佳化的plugin打到,所以將它們全部disable掉
    • 沒修好
  2. 估狗一下有人提到他把網站的permalink設定改成/?p=123後才能正常顯示,所以當然也要試試看啦
    • 還是沒修好
  3. 只好改回原本的自訂permalink

回頭聊聊為什麼要做自訂迴圈

網站的構想是日記(memo)和倉庫(Log)根據版面不同
Log一頁顯示多一點文章 & memo一頁只顯示五篇文章

而網站基本設定大家知道的沒辦法一次滿足兩種需求,這就是自訂迴圈的由來

最後

最終作法是

  1. 網站設定一樣只設五篇(滿足memo需求,也不需要自訂換頁)
  2. Log頁面的需求則是因為是不預期換頁的grid顯示,所以在code snippet實作類似以下的code
add_action( 'pre_get_posts', 'update_number_of_posts' );
function update_number_of_posts( $query ) {
	if ( is_tag('')){
        $query->set( 'posts_per_page', 50 );
        return;
    }
}

對就這樣…結束了