問題描述

paginate_links Codex 函式參考有一些正在網路轉發的示例程式碼。

它有一個部分使用一個名為 $big = 999999999; // need an unlikely integer 的變數:

echo paginate_links( array(
    'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
    'format' => '?paged=%#%',
    'current' => max( 1, get_query_var('paged') ),
    'total' => $wp_query->max_num_pages
) );

並用於 echo paginate_links 功能中的 str_replace

這是一種封裝形式嗎?

最佳解決方案

請注意 get_pagenum_link( $big ):這將根據第一個引數中提供的數字建立一個 URL(而不是一個連結) 。

該函式用於獲取 URL 的基本模式,此處使用高整數,因為:

  1. 您必須提供一個整數作為引數。

  2. 生成的 URL 使用 apply_filters('get_pagenum_link', $result)過濾,可能會被外掛更改。例如,當外掛為 sub-pages 執行單獨的標題時,與現有頁面匹配的數字的風險略高。

所以這只是一個骯髒的慣例,一個訊號到其他外掛:不要更改那個請!我認為 PHP_INT_MAX 本來會更好,但還是很醜。我想知道有多少外掛開發人員知道。

然後將數字替換為 paginate_links()中所需的佔位符。

你在這裡看到的是一個不完整的 API 。嘗試從這個例子中學到一些東西 – 不要釋出不完整的 API,否則你的檔案會令人尷尬。 🙂

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。