Paginierung zu einer benutzerdefinierten Vorlage hinzufügen, die benutzerdefinierte Beitragstypen verwendet?

Ich bin nicht sehr vertraut mit WordPress Paginierung, so dass ich nicht sicher bin, ob dies eine dumme Frage ist.

Layout:

Bildbeschreibung hier eingeben

Code:

 
query('category_name=Pictures'); ?> have_posts()) : $custom_posts->the_post(); ?>
<a href="https://wordpress.stackexchange.com/questions/12456/adding-pagination-to-a-custom-template-that-uses-custom-post-types/" title="" rel="bookmark">

Ich weiß nicht, wie man Paginierung hinzufügt, das ist nicht mein Verständnis.

Solutions Collecting From Web of "Paginierung zu einer benutzerdefinierten Vorlage hinzufügen, die benutzerdefinierte Beitragstypen verwendet?"

Um dir das Leben zu erleichtern, benutze eines der vielen Paginierung Plugins oder diejenigen, die ich die ganze Zeit benutze:

  • WP-PageNavi
  • WP-Paginieren

und im Falle dieser beiden ist es eine Frage der Aktivierung des Plugins, ein paar Optionen einrichten und nur eine Zeile Code auf Ihre Seite, zum Beispiel wenn Sie WP-PageNavi dann in Ihrem Code ändern

  < ?php $custom_posts = new WP_Query(); ?> < ?php $custom_posts->query('category_name=Pictures'); ?> < ?php while ($custom_posts->have_posts()) : $custom_posts->the_post(); ?>  < ?php endwhile; ?> 

zu

 < ?php $custom_posts = new WP_Query(); ?> < ?php $custom_posts->query(array('category_name' => 'Pictures', 'paged' => get_query_var('paged'))); ?> < ?php while ($custom_posts->have_posts()) : $custom_posts->the_post(); ?>  < ?php endwhile; ?> wp_pagenavi( array( 'query' => $custom_posts ) ); wp_reset_postdata(); 

Wie Sie sehen können, fügte ich der Abfrage den Parameter “paged” hinzu und nachdem Ihre Schleife beendet wurde, rief wp_pagenavi(); aber auf eine klügere Weise zu einer Lücke Fehler und wp_reset_postdata (); um die Abfrage zurückzusetzen.

Wenn Sie kein Plugin verwenden möchten, können Sie diese Feinfunktion verwenden:

 function pagination( $query, $baseURL = get_bloginfo( $url ) ) { $page = $query->query_vars["paged"]; if ( !$page ) $page = 1; $qs = $_SERVER["QUERY_STRING"] ? "?".$_SERVER["QUERY_STRING"] : ""; // Only necessary if there's more posts than posts-per-page if ( $query->found_posts > $query->query_vars["posts_per_page"] ) { echo '
    '; // Previous link? if ( $page > 1 ) { echo ''; } // Loop through pages for ( $i=1; $i < = $query->max_num_pages; $i++ ) { // Current page or linked page? if ( $i == $page ) { echo '
  • '.$i.'
  • '; } else { echo '
  • '.$i.'
  • '; } } // Next link? if ( $page < $query->max_num_pages ) { echo '
  • next »
  • '; } echo '
'; } }

Das ist ziemlich selbsterklärend, alles, was Sie tun müssen, ist es mit der Abfrage als erstes Argument und der aktuellen Seitenpermalink als der zweite zu nennen.