問題描述

如何確定我是否在第一頁分頁?我正在使用 WP_Pagenavi 。我只想在分頁的第一頁上運行一個函數。我檢查了 query_var ‘paged’,它在這個頁面上設置為 0,然後在後面的頁面中設置為 2,等等 (1 丟失!)… 任何人都知道一個乾淨的解決方案?

謝謝。

最佳解決方案

// get current page we are on. If not set we can assume we are on page 1.
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
// are we on page one?
if(1 == $paged) {
    //true
}

次佳解決方案

如果你只想知道你在分頁的第一頁上嘗試 is_paged()

if ( !is_paged() ) {
  // first page of pagination
}

第三種解決方案

我正在尋找一種簡單的方式來確定是否使用 posts_nav_link()功能,我在線查找的所有解決方案都太複雜或不可靠。例如,許多人建議使用 $paged 全局變量,但是我發現這個變量返回了第一頁的相同值,即使第一頁是唯一的頁面!

所以我挖了 wp-includes/link-template.php 文件,發現 posts_nav_link()函數只輸出另一個函數的返回值:

/**
 * Display post pages link navigation for previous and next pages.
 *
 * @since 0.71
 *
 * @param string $sep Optional. Separator for posts navigation links.
 * @param string $prelabel Optional. Label for previous pages.
 * @param string $nxtlabel Optional Label for next pages.
 */
function posts_nav_link( $sep = '', $prelabel = '', $nxtlabel = '' ) {
    $args = array_filter( compact('sep', 'prelabel', 'nxtlabel') );
    echo get_posts_nav_link($args);
}

使用這些知識,我們可以創建一個簡單有效的方式來確定是否需要添加鏈接以在頁面之間導航:

$posts_nav = get_posts_nav_link();
if(empty($posts_nav)) {
    // do not use posts_nav_link()
} else {
    // use posts_nav_link()
}

最初發布在我的博客 here

參考文獻

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