web-dev-qa-db-de.com

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

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.

21
// 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
}
23
Brady

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

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

Ich suchte nach einer einfachen Methode, um festzustellen, ob die Funktion posts_nav_link() verwendet werden soll, und alle Lösungen, die ich online gefunden habe, waren entweder zu komplex oder zu unzuverlässig. Zum Beispiel haben viele Leute vorgeschlagen, die globale Variable $paged zu verwenden, aber ich habe festgestellt, dass diese Variable denselben Wert für die erste Seite zurückgibt, auch wenn die erste Seite die einzige Seite war!

Also habe ich in die wp-includes/link-template.php-Datei gegraben 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 .

4
iglvzx