wake-up-neo.com

Was ist der Unterschied zwischen $ paged und $ page?

Ich erstelle eine Paginierung für meine Site. Hoffe, jeder kann mir erklären, wofür der folgende Code verwendet wird? Danke im Voraus.

<?php
if ( get_query_var('paged') ) {
    $paged = get_query_var('paged');
} elseif ( get_query_var('page') ) {
    $paged = get_query_var('page');
} else {
    $paged = 1;
}
query_posts('paged='.$paged.'&posts_per_page=');
?>
2
Hung The

Ich hoffe, Sie verstehen, was Abfragevariablen sind. Wenn nicht, hier ist es kurz. Die Hauptabfrage verwendet WP_Query, um sich einzurichten. In der Hauptabfrage verwendet WP_Query öffentliche Abfragevariablen, um die Hauptabfrage entsprechend der angeforderten Seite zu erstellen, und paged und page sind zwei davon. Um alle öffentlichen Abfragevariablen anzuzeigen, fügen Sie diese in Ihre Kopfzeile ein und überprüfen Sie, wie diese gemäß der abgefragten Seite eingestellt sind

var_dump($wp_query->query_vars);

Die Funktion get_query_var() wird verwendet, um die Werte dieser öffentlichen Abfragevariablen abzurufen. In diesem Fall sind dies page und paged.

Um Ihre Frage zu beantworten, werden diese beiden Parameter und ihre Werte von WP_Query verwendet, um die Paginierung und vor allem den Versatz von Beiträgen nach Seitenzahlen zu berechnen. Es ist dieser Parameter, der sicherstellt, dass Ihre Postseiten korrekt angezeigt werden, wenn Sie durch Seiten blättern

  • paged -> Wird auf der Homepage, Blogseite, Archivseiten und Seiten zur Berechnung der Paginierung verwendet. Die erste Seite ist 0 und von dort entspricht die Nummer der Seitennummer

  • page -> Auf einer statischen Titelseite und einzelnen Seiten zur Paginierung verwenden. Die Paginierung auf diesen Seiten funktioniert genauso, eine statische Titelseite wird bei Paginierung wie eine einzelne Seite behandelt. Mit Paginierung auf einzelnen Seiten meine ich, dass einzelne Posts in mehrere Seiten unterteilt werden können

Grundsätzlich prüft Ihr Code, ob der Parameter paged gesetzt ist. Wenn dies fehlschlägt, prüft er, ob der Parameter page gesetzt ist. Ist dies nicht der Fall, setzen Sie die Seite auf 1. Diese Prüfung schlägt auf Seite 1 immer fehl, daher wird $paged immer auf 1 zurückgesetzt. Auf jeder anderen Seite als der ersten gibt entweder paged oder page true zurück und setzt $paged auf die richtige Seitennummer

Letzte Anmerkung: Verwenden Sie niemals query_posts, es sei denn, Sie müssen etwas auf Ihrer Seite aufbrechen, und glauben Sie mir, das wollen Sie nicht. Verwenden Sie für paginierte benutzerdefinierte Abfragen immer WP_Query. Eine vollständige Erklärung hierzu finden Sie in diesem Beitrag den ich vor einiger Zeit gemacht habe

8
Pieter Goosen