Bagaimana cara menentukan apakah saya ada di halaman pertama pagination?

22

Bagaimana saya menentukan apakah saya ada di halaman pertama pagination? Saya menggunakan WP_Pagenavi. Saya ingin menjalankan fungsi hanya pada halaman pertama pagination. Saya memeriksa query_var 'paged', ini diatur ke 0 pada halaman ini, dan kemudian 2, 3 dan seterusnya di halaman selanjutnya (1 hilang!) ... Adakah yang tahu solusi bersih?

Terima kasih.

Rutwick Gangurde
sumber

Jawaban:

24
// 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
}
Brady
sumber
4
Ini benar, tetapi panggilan get_query_var( 'paged' )dua kali berlebihan. Parameter kedua opsional fungsi itu adalah nilai default. Jadi, Anda dapat menyederhanakannya menjadi: $paged = get_query_var( 'paged', 1 );
Linnea Huxford
Agustus 2017: Yang ini tidak berfungsi untuk saya, menghasilkan 1 pada setiap halaman. Namun jawaban Michael bekerja dengan sempurna.
Surjith SM
32

jika Anda hanya ingin tahu bahwa Anda berada di halaman pertama halaman yang dihubungi coba is_paged():

if ( !is_paged() ) {
  // first page of pagination
}
Michael
sumber
Yang ini berhasil untuk saya. (Agu 2017). Entah bagaimana jawaban yang ditandai sebagai benar tidak berfungsi ..
Surjith SM
Luar biasa, bersih, dan sederhana.
Trace DeCoy
4

Saya sedang mencari cara sederhana untuk menentukan apakah akan menggunakan posts_nav_link()fungsi atau tidak dan semua solusi yang saya temukan online terlalu rumit atau tidak dapat diandalkan. Misalnya, banyak orang menyarankan menggunakan $pagedvariabel global, tetapi saya menemukan bahwa variabel ini mengembalikan nilai yang sama untuk halaman pertama, bahkan ketika halaman pertama adalah satu-satunya halaman!

Jadi, saya menggali ke dalam wp-includes/link-template.phpfile, dan menemukan bahwa posts_nav_link()fungsi tersebut hanya menampilkan nilai pengembalian fungsi lain:

/**
 * 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);
}

Dengan menggunakan pengetahuan ini, kita dapat membuat cara sederhana dan efektif untuk menentukan apakah kita perlu menambahkan tautan untuk bernavigasi antar halaman:

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

Awalnya diposting di blog saya di sini .

iglvzx
sumber