Ich verwende eine Abfrage-Schleife auf meinen Vorlagenseiten wie folgt:
query('posts_per_page='.get_option('posts_per_page').'&paged=' . $paged); global $wp_query; query_posts(array_merge($wp_query->query, array( 'paged' => get_query_var('paged'), 'posts_per_page' => 2 ))); ?> have_posts()) : ?> have_posts()) : $wp_query->the_post(); ?> <a href="https://wordpress.stackexchange.com/questions/87489/pagination-on-category-php-and-tag-php-not-working/">
die Paginierung funktioniert gut mit Ausnahme von der category.php oder tag.php. Die erste Seite wird korrekt angezeigt, aber wenn ich beispielsweise auf “category / categoryname / page / 2” klicke, wird kein Inhalt mehr angezeigt und die Seitennummer verschwindet …
Ich weiß, dass es etwas falsch mit der Abfrage-Schleife sein muss …
Hilfe wäre nett! Vielen Dank, Jochen
Wenn Sie posts_per_page
für posts_per_page
für Tag- und Kategoriearchive ändern posts_per_page
, verwenden Sie nicht query_posts()
; Filtern Sie stattdessen die $query
über pre_get_posts
:
function wpse87489_filter_pre_get_posts( $query ) { if ( ( is_category() || is_tag() ) && $query->is_main_query ) { $query->set( 'posts_per_page', '2' ); } } add_action( 'pre_get_posts', 'wpse87489_filter_pre_get_posts' );
Bitte verwenden Sie den folgenden Code:
$arg = array ( 'posts_per_page' => get_option('posts_per_page'), 'paged' => ( get_query_var('paged') ? get_query_var('paged') : 1 ) ); $wp_query = new WP_Query($arg); if ($wp_query->have_posts()) : while ($wp_query->have_posts()) : $wp_query->the_post(); // do something endwhile; endif;