Jun Tach,
Ich habe folgendes Problem:
ich würde gerne in meinem Template eine Pagination einbinden, dass funktioniert soweit, jedoch werden immer 22 Seiten angezeigt unabhängig davon wie viele Posts ich habe.
Ich nutze WP_Query um die Beiträge zu holen:
PHP
$btpgid=get_queried_object_id();$btmetanm=get_post_meta( $btpgid, 'WP_Catid','true' );$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array( 'posts_per_page' => 20, 'category_name' => $btmetanm, 'paged' => $paged,'post_type' => 'post', 'category__in' => wp_get_post_categories($post->ID), 'orderby' => 'date', 'order' => 'DESC' ); $postslist = new WP_Query( $args ); ?><!-- Main --><div class="container"><?php while ( $postslist->have_posts() ) : $postslist->the_post();
und als Funktion für die Pagination nutze ich:
PHP
/*Pgination */function pagination($range = 3, $show_one_pager = true, $show_page_hint = false){ global $wp_query; $num_of_pages = (int)$wp_query->max_num_pages; if(!is_single() && $num_of_pages > 1) { $current_page = get_query_var('paged') === 0 ? 1 : get_query_var('paged'); $num_of_display_pages = ($range * 2) + 1; $output = '<div id="pagination2">';
if($current_page > 2 && $current_page > $range + 1 && $num_of_display_pages < $num_of_pages) { $output .= '<a href="' . get_pagenum_link(1) . '" title="Seite 1 - Neueste Artikel" class="pgnSteps"><span class="glyphicon glyphicon-backward" aria-hidden="true"></span></a>'; } if($show_one_pager && $current_page > 1) { $output .= '<a href="' . get_pagenum_link($current_page - 1) . '" title="Seite ' . ($current_page - 1) . ' - Neuere Artikel" class="pgnSteps"><span class="glyphicon glyphicon-play icon-flipped" aria-hidden="true"></span></a>'; } for($i = 1; $i <= $num_of_pages; $i++) { if($i < $current_page + $range + 1 && $i > $current_page - $range - 1) { if($current_page === $i) { $output .= '<span class="current">' . $i . '</span>'; } else { $output .= '<a href="' . get_pagenum_link($i) . '" title="Seite ' . $i . '" >' . $i . '</a>'; } } } if($show_one_pager && $current_page < $num_of_pages) { $output .= '<a href="' . get_pagenum_link($current_page + 1) . '" title="Seite ' . ($current_page + 1) . ' - Ältere Artikel" class="pgnSteps"><span class="glyphicon glyphicon-play" aria-hidden="true"></span></a>'; } if($current_page < $num_of_pages - 1 && $current_page + $range < $num_of_pages && $num_of_display_pages < $num_of_pages) { $output .= '<a href="' . get_pagenum_link($num_of_pages) . '" title="Seite ' . $num_of_pages . ' - Älteste Artikel" class="pgnSteps"><span class="glyphicon glyphicon-forward" aria-hidden="true"></span></a>'; } if($show_page_hint) { $output .= '<br><span>Seite ' . $current_page . ' von ' . $num_of_pages . '</span>'; } $output .= '</div>'; return $output; }}
Das Problem schein zu sein, dass ich bei
immer 22 rausbekomme.
Gibt es eine Möglichkeit die richtige Zahl zu bekommen?
Ich nutze die Selbe funktion bei categories und da scheint alles zu funktionieren :?:
PHP
$btpgid=get_queried_object_id();$btmetanm=get_post_meta( $btpgid, 'WP_Catid','true' );$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array( 'posts_per_page' => 5, 'category_name' => $btmetanm, 'paged' => $paged,'post_type' => 'post', 'category__in' => wp_get_post_categories($post->ID), 'orderby' => 'date', 'order' => 'DESC', ); $postslist = new WP_Query( $args ); ?><!-- Main --><div class="container"><?php while ( $postslist->have_posts() ) : $postslist->the_post();
Vielen Dank schon mal für die Hilfe;) ich bin für jeden Tipp dankbar :)
LG
Treeman