benutzerdefinierter Post-Typ-Paging funktioniert nicht über Seite 3 hinaus

Ich habe einen benutzerdefinierten Post-Typ namens Dienste, der 23 benutzerdefinierte Beiträge hat, ich habe auch eine benutzerdefinierte Taxonomie für alle Kategorien (5 Kategorien).

Ich versuche, eine Liste aller benutzerdefinierten Beiträge von Diensten zu erstellen und zeige nur 5 Beiträge zu einer Zeit, die ich getan habe. Ich versuche auch, sie paginiert mit wp_paginate, kann ich Seite 1, 2 und 3 Seite zu bekommen, aber aus irgendeinem Grund bekomme ich eine 404 auf den Seiten 4 und 5.

Dies ist die Abfrage, die ich verwende, um die Liste zu blättern:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $wp_query = new WP_Query(array('post_type' => 'services', 'paged'=>$paged, 'posts_per_page' => 5, 'order' => 'DESC' )); 

Meine benutzerdefinierte Postleitzahl lautet:

 register_post_type( 'services', array( 'labels' => array( 'name' => __( 'Services' ), 'singular_name' => __( 'Service' ) ), 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => 'services', 'capability_type' => 'page', 'has_archive' => 'our-services', 'rewrite' => array( 'slug' => 'our-services/%service_categories%', 'with_front' => false), 'taxonomies' => array( 'service_categories' ), 'supports' => array( 'title', 'editor', 'custom-fields', 'revisions', 'thumbnail', 'page-attributes' ) ) ); 

und mein benutzerdefinierter Taxonomiecode lautet:

 function init_service_categories() { register_taxonomy( 'service_categories', 'services', array( 'labels' => array( 'name' => 'Services Categories', 'add_new_item' => 'Add New Services Category', 'new_item_name' => "New Services Category" ), 'show_ui' => true, 'show_tagcloud' => false, 'hierarchical' => true, 'rewrite' => array( 'slug' => 'our-services' ), ) ); } add_action('init', 'init_service_categories', 0); 

Ich benutze auch dieses Bit des Codes, also wenn ich zu einer einzelnen Seite der Dienstleistungen gehe, hat sie die Kategorie vor dem Service.

 add_filter('post_type_link', 'glossary_term_permalink', 10, 4); function glossary_term_permalink($post_link, $post, $leavename, $sample) { if ( false !== strpos( $post_link, '%service_categories%' ) ) { $glossary_letter = get_the_terms( $post->ID, 'service_categories' ); $post_link = str_replace( '%service_categories%', array_pop( $glossary_letter )->slug, $post_link ); } return $post_link; } 

Ich würde wirklich etwas Hilfe bei dieser Sache schätzen, da ich so verloren bin und nicht verstehe, warum es nicht funktioniert.

Vielen Dank

Solutions Collecting From Web of "benutzerdefinierter Post-Typ-Paging funktioniert nicht über Seite 3 hinaus"

Führen Sie keine benutzerdefinierten Abfragen in der Vorlage aus, um Abfrageparameter zu ändern. Die Hauptabfrage wird ausgeführt, bevor die Vorlage geladen wird. Dies ist eine Verschwendung von Ressourcen und führt, wie Sie festgestellt haben, zu Paginierungsproblemen.

Entfernen Sie Ihre benutzerdefinierte WP_Query , stellen Sie die normale Schleife wieder her, und verwenden Sie pre_get_posts , um Abfrageparameter zu ändern, bevor die Abfrage ausgeführt wird.

 function wpa_services_posts_per_page( $query ) { if ( !is_admin() && $query->is_post_type_archive( 'services' ) && $query->is_main_query() ) { $query->set( 'posts_per_page', 5 ); } } add_action( 'pre_get_posts', 'wpa_services_posts_per_page' );