Achive mit Kategoriefilter anzeigen, aber Seite pro Post funktioniert nicht

WordPress Version: 3.3.2

Annahme, Meine Post in der Kategorie 7 haben 9 Beiträge im Oktober 2012.

durch Zugriff

www.example.com/2012/10/?cat=7

Ich kann alles auf einer Seite sehen. Kein Problem, ich erstelle jedoch die benutzerdefinierte Seite category-7.php im Theme-Ordner.

 //listed category per page = 6 $query = 'posts_per_page=6&cat=7'; $year = get_query_var('year'); if($year > 0) { //build query string $query .= '&year='.$year; } $month = get_query_var('monthnum'); if($month > 0) { $query .= '&monthnum='.$month; } $paged = get_query_var('paged'); if($paged > 0) { $query .= '&paged='.$paged; } query_posts($query); 

Jetzt greife ich wieder zu

www.example.com/2012/10/?cat=7

Die Unterseite hat die Option Nächste Seite, aber wenn ich darauf klicke

www.example.com/2012/10/page/2/?cat=7

Ich habe “404 – Seite nicht gefunden!”

Die einzige Lösung, die ich tun kann, ist, zu WP-Admin zu gehen, Leseeinstellungen ändern die “Blog-Seiten zeigen höchstens” Variable auf 6, dann bekam ich die richtige Ausgabe.

Wie ich in der WordPress-Seite durch den zusätzlichen Parameter query_posts , sollte es jedoch korrekt funktionieren.

Bitte beraten. Vielen Dank!

Solutions Collecting From Web of "Achive mit Kategoriefilter anzeigen, aber Seite pro Post funktioniert nicht"

Das Problem ist, dass Sie die Hauptabfrage stampfen, indem Sie query_posts() . Tu das nicht.

Filtern Sie stattdessen die Hauptabfrage über pre_get_posts :

 function wpse82113_filter_pre_get_posts( $query ) { if ( is_category( 7 ) && $query->is_main_query() ) { $query->set( 'posts_per_page', '6' ); } } add_action( 'pre_get_posts', 'wpse82113_filter_pre_get_posts' );