問題描述
如何確定我是否在第一頁分頁?我正在使用 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。