Cum să determin dacă sunt pe prima pagină a paginării?
Cum pot determina dacă mă aflu pe prima pagină a paginării? Folosesc WP_Pagenavi. Vreau să execut o funcție doar pe prima pagină a paginării. Am verificat variabila query 'paged', aceasta este setată la 0 pe această pagină, și apoi 2, 3 și așa mai departe pe paginile următoare (1 lipsește!)... Știe cineva o soluție elegantă?
Mulțumesc.

dacă vrei doar să știi dacă te afli pe prima pagină a unei pagini paginate, încearcă is_paged()
:
if ( !is_paged() ) {
// prima pagină de paginare
}

Aceasta a funcționat pentru mine. (Aug 2017). Cumva răspunsul marcat ca corect nu funcționează..

@Gangesh funcționează perfect. Este o condiție simplă în WordPress, vezi: https://developer.wordpress.org/reference/functions/is_paged/

Acest lucru este corect, dar apelarea funcției get_query_var( 'paged' )
de două ori este redundantă. Al doilea parametru opțional al acestei funcții reprezintă valoarea implicită.
Deci, ați putea simplifica la:
$paged = get_query_var( 'paged', 1 );

Căutam o metodă simplă pentru a determina dacă trebuie sau nu să folosesc funcția posts_nav_link()
, iar toate soluțiile găsite online erau fie prea complexe, fie nesigure. De exemplu, mulți sugerau folosirea variabilei globale $paged
, dar am descoperit că această variabilă returna aceeași valoare pentru prima pagină, chiar și atunci când prima pagină era singura pagină disponibilă!
Așa că am cercetat fișierul wp-includes/link-template.php
și am descoperit că funcția posts_nav_link()
pur și simplu afișează valoarea returnată de o altă funcție:
/**
* Afișează linkurile de navigare între paginile de articole.
*
* @since 0.71
*
* @param string $sep Opțional. Separator pentru linkurile de navigare.
* @param string $prelabel Opțional. Eticheta pentru paginile anterioare.
* @param string $nxtlabel Opțional Eticheta pentru paginile următoare.
*/
function posts_nav_link( $sep = '', $prelabel = '', $nxtlabel = '' ) {
$args = array_filter( compact('sep', 'prelabel', 'nxtlabel') );
echo get_posts_nav_link($args);
}
Folosind această informație, putem crea o metodă simplă și eficientă pentru a determina dacă este necesar să adăugăm linkuri de navigare între pagini:
$posts_nav = get_posts_nav_link();
if(empty($posts_nav)) {
// nu folosi posts_nav_link()
} else {
// folosește posts_nav_link()
}
Publicat inițial pe blogul meu aici.
