İlk sayfalamada olup olmadığımı nasıl belirleyebilirim?


22

İlk sayfalama sayfasında olup olmadığımı nasıl belirlerim? WP_Pagenavi kullanıyorum. Yalnızca sayfalamanın ilk sayfasında bir işlev çalıştırmak istiyorum. Query_var 'disk belleği' öğesini kontrol ettim, bu sayfada 0 olarak ayarlandı, daha sonra sonraki sayfalarda 2, 3 vb. (1 eksik!) ... Herkes temiz bir çözüm biliyor mu?

Teşekkürler.

Yanıtlar:


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
}

4
Bu doğru, ancak get_query_var( 'paged' )iki kez arama yapmak gereksiz. Bu işlevin isteğe bağlı ikinci parametresi varsayılan değerdir. Yani, basitleştirmek için: $paged = get_query_var( 'paged', 1 );
Linnea Huxford 5:16

Ağustos 2017: Bu benim için çalışmıyor, Her sayfada 1 çıktı. Ancak Michael'ın cevabı mükemmel çalıştı.
Surjith SM

32

Yalnızca sayfalandırılmış bir sayfanın ilk sayfasında olduğunuzu bilmek istiyorsanız is_paged():

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

Bu benim için çalıştı. (Ağustos 2017). Her nasılsa doğru çalışmıyor olarak işaretlenmiş cevap ..
Surjith SM

Mükemmel, temiz ve basit.
DeCoy Trace

4

Bu posts_nav_link()işlevi kullanıp kullanmamayı ve çevrimiçi bulduğum tüm çözümleri çok karmaşık veya güvenilmez olup olmadığını belirlemenin basit bir yolunu arıyordum . Örneğin, birçok kişi $pagedglobal değişkeni kullanmayı önerdi , ancak bu değişkenin ilk sayfa için aynı değeri verdiğini, ilk sayfa tek sayfa olsa bile buldum!

Böylece wp-includes/link-template.phpdosyaya girdim ve posts_nav_link()işlevin basitçe başka bir işlevin dönüş değerini verdiğini gördüm :

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

Bu bilgiyi kullanarak, sayfalar arasında gezinmek için bağlantılar eklememiz gerekip gerekmediğini belirlemek için basit ve etkili bir yol oluşturabiliriz:

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

Aslen burada bloguma gönderildi .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.