5 WordPress-Paginierungscode-Snippets mit Beispielen [Einfach bis Fortgeschritten]
Veröffentlicht: 2020-02-03Wenn Sie nach dem besten Paginierungscode in WordPress mit spezifischen Beispielen suchen, werden Sie die in diesem Beitrag geteilten Beispiele für Paginierungscode-Snippets als sehr nützlich empfinden. Sie können diesen Paginierungscode im WordPress-Design oder in einem benutzerdefinierten WordPress-Plugin anwenden, das eine Paginierung der Beiträge erfordert. Lassen Sie mich die Verfolgung beenden und meine bevorzugten Paginierungscode-Snippets teilen:
#1) WordPress Loop mit einfachem Paginierungscode
Wenn Sie eine Paginierung innerhalb der WordPress-Schleife hinzufügen möchten, können Sie den nächsten und vorherigen Paginierungscode unten verwenden:
<?php if ( have_posts() ) : ?> <!-- Fügen Sie hier die Paginierungsfunktionen hinzu. --> <!-- Start der Hauptschleife. --> <?php while ( have_posts() ) : the_post(); ?> <!-- der Rest der Hauptschleife Ihres Themas --> <?php endwhile; ?> <!-- Ende der Hauptschleife --> <!-- Fügen Sie hier die Paginierungsfunktionen hinzu. --> <div class="nav- previous alignleft"><?php previous_posts_link( 'Ältere Beiträge' ); ?></div> <div class="nav-next alignright"><?php next_posts_link( 'Neuere Beiträge' ); ?></div> <?php sonst : ?> <p><?php _e('Entschuldigung, keine Beiträge entsprechen Ihren Kriterien.'); ?></p> <?php endif; ?>
#2) WordPress Numerische Paginierung
Eine weitere großartige WordPress-Paginierungsoption ist die Verwendung der numerischen Paginierung, die den Posts Nummern hinzufügt und die Posts basierend auf einer Nummer gruppiert. Beispielsweise können Sie 5 Beiträge auf einer Seite anzeigen. Dies ist der Paginierungscode in WordPress für die numerische Paginierung :
<?php #SCHRITT 1: Erstellen Sie die numerische WordPress-Paginierungsfunktion Funktion njengah_numeric_pagination() { if( is_singular() ) Rückkehr; global $wp_query; /** Ausführung stoppen, wenn nur 1 Seite vorhanden ist */ if( $wp_query->max_num_pages <= 1 ) Rückkehr; $paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1; $max = intval( $wp_query->max_num_pages ); /** Aktuelle Seite zum Array hinzufügen */ if ( $paged >= 1 ) $links[] = $seitenweise; /** Seiten um die aktuelle Seite herum zum Array hinzufügen */ if ( $paged >= 3 ) { $links[] = $paged - 1; $links[] = $paged - 2; } if ( ( $paged + 2 ) <= $max ) { $links[] = $seitenweise + 2; $links[] = $seitenweise + 1; } echo '<div class="navigation"><ul>' . "\n"; /** Link zum vorherigen Beitrag */ if ( get_vorherige_posts_link() ) printf( '<li>%s</li>' . "\n", get_ previous_posts_link() ); /** Link zur ersten Seite, ggf. mit Auslassungspunkten */ if ( ! in_array( 1, $links ) ) { $class = 1 == $paged ? 'class="aktiv"' : ''; printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( 1 ) ), '1' ); if ( ! in_array( 2, $links ) ) echo '<li>…</li>'; } /** Link zur aktuellen Seite, plus 2 Seiten in beide Richtungen, falls erforderlich */ sortieren( $links ); foreach ( (array) $links als $link ) { $class = $paged == $link ? 'class="aktiv"' : ''; printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $link ) ), $link ); } /** Link zur letzten Seite, ggf. mit Ellipsen */ if ( ! in_array( $max, $links ) ) { if ( ! in_array( $max - 1, $links ) ) echo '<li>…</li>' . "\n"; $class = $paged == $max ? 'class="aktiv"' : ''; printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $max ) ), $max ); } /** Link zum nächsten Beitrag */ if ( get_next_posts_link() ) printf( '<li>%s</li>' . "\n", get_next_posts_link() ); echo '</ul></div>' . "\n"; } #SCHRITT 2: Fügen Sie mit diesem Aufruf der obigen Funktion zu den Vorlagen hinzu njengah_numeric_pagination(); #SCHRITT 3 : Gestalten Sie die Paginierung passend zu Ihren Themenstilen /** CSS-Klassen zum Gestalten der Paginierung*/ .navigation li { } .navigation li a{ }
#3) WordPress Ajax-Paginierungsbeispiel
Wenn Sie in WordPress nach dem Ajax-Paginierungscode suchen, habe ich auf GitHub ein Beispiel gefunden, das sehr gut funktioniert und der Code in Form eines Plugins vorliegt. Ich habe es angepasst, um es zu einem Plugin für unser Tutorial zu machen, und der Code kann in eine Datei kopiert und im ZIP-Format gespeichert und als Plugin installiert werden. Das Folgende ist der WordPress-Beispielcode für die Ajax-Paginierung:
<?php /** * Plugin-Name: Njengah Ajax-Paginierung * Plugin-URI: https://njengah.com * Beschreibung: WordPress Ajax-Paginierungsbeispiel. * Version: 1.0.0 * Autor: Joe Njenga * Autoren-URI: https://njengah.com * Lizenz: GPL-2.0+ * Lizenz-URI: http://www.gnu.org/licenses/gpl-2.0.txt * Textdomäne: cs-Paginierung * Domänenpfad: /Sprachen */ // Kredit - Casper Schultz Klasse Njengah_Ajax_Pagination { geschützte $num_per_page; öffentliche Funktion __construct() { $this->num_per_page = 5; $this->init(); } geschützte Funktion init() { add_action( 'init', array( $this, 'add_rewrite_rule' ) ); add_filter( 'query_vars', array( $this, 'add_query_vars' ) ); add_action( 'parse_request', array( $this, 'parse_request' ) ); } /** * Analysieren Sie die eingehende Anfrage und generieren Sie das Ergebnis. */ Funktion parse_request( $wp ) { if ( array_key_exists( 'cs-page', $wp->query_vars ) ) { $page = isset ( $wp->query_vars['cs-page'] ) ? $wp->query_vars['cs-page'] : 1; $args = array( 'post_type' => 'post', 'post_per_page' => $this->num_per_page, 'paged' => $page, ); $query = neue WP_Query( $args ); // Wir müssen die Gesamtzahl der gefundenen Posts kennen. $values['total'] = $query->found_posts; // Und die pro Seite. $values['per_page'] = $this->num_per_page; $values['posts'] = array(); // Senden wir nur die Daten, die wir brauchen. while ( $query->have_posts() ) { $query->the_post(); $values['posts'][] = array( 'ID' => get_the_ID(), 'title' => get_the_title(), ); } wp_reset_postdata(); wp_send_json( $values ); } } /** * Fügen Sie die erforderlichen Abfrageargumente hinzu. */ Funktion add_query_vars( $query_vars ) { $query_vars[] = 'cs-page'; $query_vars zurückgeben; } /** * Fügt eine Rewrite-Regel für unsere benutzerdefinierte Paginierung hinzu, damit wir die Verwendung von admin-ajax vermeiden können. */ Funktion add_rewrite_rule() { add_rewrite_rule( '^cs-paginate/([0-9]+)/?', 'index.php?cs-page=$matches[1]', 'top' ); } /** * Flush-Rewrite-Regeln. */ statische Funktion install() { flush_rewrite_rules(); } } Funktion njengah_ajax_pagination_init() { neu Njengah_Ajax_Pagination(); } njengah_ajax_pagination_init(); // Umschreibungsregeln müssen bei der Aktivierung geleert werden. register_activation_hook( __FILE__, array( 'Njengah_Ajax_Pagination', 'install' ) );
#4) WordPress-Paginierung für benutzerdefinierten Beitragstyp
Für die Paginierung des benutzerdefinierten Beitragstyps müssen Sie die WP_query verwenden, um nach dem benutzerdefinierten Beitragstyp zu suchen, und in den Argumenten übergeben Sie den benutzerdefinierten Beitragstyp im post_type und verwenden dann den Paginierungscode, um die WordPress-Paginierung für den benutzerdefinierten Beitragstyp zu erstellen.
Das Folgende ist der Code, den Sie der functions.php hinzufügen und den post_type durch Ihren jeweiligen benutzerdefinierten Posttyp-Slug ersetzen sollten:
<?php /** * WordPress-Paginierung für benutzerdefinierte Beitragstypen */ <?php $paged = ( get_query_var( 'paged' ) ) ? get_query_var('ausgelagert'): 1; $args = array( 'post_type' => 'custom_post_type_name', 'posts_per_page' => 10, 'paged' => $paged ); $loop = neue WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); // Inhalt des benutzerdefinierten Beitragstyps am Ende; ?> <nav class="pagination"> <?php $groß = 999999999; echo paginate_links( array( 'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ), 'format' => '?paged=%#%', 'aktuell' => max( 1, get_query_var('paged') ), 'total' => $loop->max_num_pages, 'prev_text' => '«', 'next_text' => '»' ) ); ?> </nav> <?php wp_reset_postdata(); ?>
#5 Benutzerdefinierte Abfrage-Paginierung WordPress
Der benutzerdefinierte Paginierungscode für Abfragen in WordPress verwendet WP_query, um den spezifischen Post zu erhalten, den wir paginieren möchten, und kombiniert dann die Ergebnisse der Abfrage mit dem Paginierungscode, um die Paginierung auf die von uns ausgewählten spezifischen Posts anzuwenden. Das Folgende ist ein Beispiel für eine benutzerdefinierte Abfrage-Paginierung in WordPress.
<?php //Benutzerdefinierte Abfrage $paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1; $args = array( 'posts_per_page' => 5, 'category_name' => 'Galerie', 'paged' => $paged, ); $the_query = neue WP_Query( $args ); ?> <!-- die Schleife usw.. --> <?php // Seitennummerierung $groß = 999999999; // brauche eine unwahrscheinliche Ganzzahl echo paginate_links( array( 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'aktuell' => max( 1, get_query_var('paged') ), 'total' => $the_query->max_num_pages ) );
Fazit
In diesem Beitrag haben wir die verschiedenen Arten der WordPress-Paginierung hervorgehoben und einen spezifischen Paginierungscode geteilt, der für jeden Fall verwendet werden kann. Dieser Paginierungscode in WordPress kann zu bestehenden Themes oder Plugins hinzugefügt werden und kann auch als eigenständiges Plugin zu WordPress hinzugefügt werden.