Wie kann ich feststellen, ob ich auf der ersten Seite der Paginierung bin?

22

Wie stelle ich fest, ob ich auf der ersten Seite der Paginierung bin? Ich benutze WP_Pagenavi. Ich möchte eine Funktion nur auf der ersten Seite der Paginierung ausführen. Ich habe die 'ausgelagerte' query_var überprüft, sie ist auf dieser Seite auf 0 gesetzt und dann auf den späteren Seiten auf 2, 3 usw. (1 fehlt!) ... Kennt jemand eine saubere Lösung?

Vielen Dank.

Rutwick Gangurde
quelle

Antworten:

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
quelle
4
Dies ist richtig, aber get_query_var( 'paged' )zweimaliges Aufrufen ist überflüssig. Der optionale zweite Parameter dieser Funktion ist der Standardwert. Sie könnten es also vereinfachen: $paged = get_query_var( 'paged', 1 );
Linnea Huxford
Aug 2017: Dieser funktioniert bei mir nicht, er gibt auf jeder Seite 1 aus. Michaels Antwort funktionierte jedoch perfekt.
Surjith SM
32

Wenn Sie nur wissen möchten, dass Sie sich auf der ersten Seite einer paginierten Seite befinden, versuchen Sie Folgendes is_paged():

if ( !is_paged() ) {
  // first page of pagination
}
Michael
quelle
Dieser hat für mich gearbeitet. (August 2017). Irgendwie als richtig gekennzeichnete Antwort funktioniert nicht ..
Surjith SM
Hervorragend, sauber und einfach.
Trace DeCoy
4

Ich suchte nach einer einfachen Möglichkeit, um festzustellen, ob die posts_nav_link()Funktion verwendet werden sollte oder nicht, und alle Lösungen, die ich online fand, waren entweder zu komplex oder unzuverlässig. Zum Beispiel haben viele Leute vorgeschlagen, die $pagedglobale Variable zu verwenden, aber ich stellte fest, dass diese Variable denselben Wert für die erste Seite zurückgab, auch wenn die erste Seite die einzige Seite war!

Also habe ich mich in die wp-includes/link-template.phpDatei vertieft und festgestellt, dass die posts_nav_link()Funktion einfach den Rückgabewert einer anderen Funktion ausgibt:

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

Mit diesem Wissen können wir auf einfache und effektive Weise feststellen, ob wir Links hinzufügen müssen, um zwischen den Seiten zu navigieren:

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

Ursprünglich geschrieben auf meinem Blog hier .

iglvzx
quelle