Die Standardschleife des Taxonomie-Archivs gibt 1 Datensatz statt 8 zurück

Ich habe einen benutzerdefinierten Post-Typ namens “Buch” und eine benutzerdefinierte Taxonomie für diesen CPT namens “Bücher”. Der Begriff einer Terminologie dieser Taxonomie ist “sich selbst akzeptieren”. Hier ist der Code der Archivseite “accepting-yourself” (URL: my_site / books / accepting-yourself /):

if ( have_posts() ) : while ( have_posts() ) : the_post(); echo get_the_title(); endwhile; endif; 

Dies sollte alle “Buch” Beiträge in benutzerdefinierten Taxonomie “Bücher” zurückgeben, das ist 8 Beiträge. Stattdessen gibt es nur einen zurück.

Nur für den Fall, dass hier der Code ist, der meinen benutzerdefinierten Post-Typ und meine Custon-Taxonomie definiert:

 /*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ CUSTOM POST TYPE : BOOK -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ function my_custom_post_book() { $labels = array( 'name' => _x( 'Books', 'post type general name' ), 'singular_name' => _x( 'Book', 'post type singular name' ), 'add_new' => _x( 'Add New', 'book' ), 'add_new_item' => __( 'Add New Book' ), 'edit_item' => __( 'Edit Book' ), 'new_item' => __( 'New Book' ), 'all_items' => __( 'All Book' ), 'view_item' => __( 'View Book' ), 'search_items' => __( 'Search Book' ), 'not_found' => __( 'No books found' ), 'not_found_in_trash' => __( 'No books found in the Trash' ), 'parent_item_colon' => '', 'menu_name' => 'Books' ); $args = array( 'labels' => $labels, 'description' => 'Holds our books specific data', 'public' => true, 'menu_position' => 4, 'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments', 'custom-fields'), 'has_archive' => true, ); register_post_type( 'book', $args ); } add_action( 'init', 'my_custom_post_book' ); function my_updated_messages_book( $messages ) { global $post, $post_ID; $messages['book'] = array( 0 => '', 1 => sprintf( __('Book updated. View book'), esc_url( get_permalink($post_ID) ) ), 2 => __('Custom field updated.'), 3 => __('Custom field deleted.'), 4 => __('Book updated.'), 5 => isset($_GET['revision']) ? sprintf( __('Book restored to revision from https://wordpress.stackexchange.com/questions/129285/taxonomy-term-archive-default-loop-returns-1-record-instead-of-8/%s'), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false, 6 => sprintf( __('Book published. View book'), esc_url( get_permalink($post_ID) ) ), 7 => __('Book saved.'), 8 => sprintf( __('Book submitted. Preview book'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ), 9 => sprintf( __('Book scheduled for: %1$s. Preview book'), date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ), 10 => sprintf( __('Book draft updated. Preview book'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ), ); return $messages; } add_filter( 'post_updated_messages', 'my_updated_messages_book' ); /*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ CUSTOM BOOK TAXONOMY -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ $labels = array( 'name' => 'Books', 'singular_name' => 'Book', 'search_items' => 'Search Books', 'popular_items' => 'Popular Books', 'all_items' => 'All Books', 'parent_item' => 'Parent Book', 'edit_item' => 'Edit Book', 'update_item' => 'Update Book', 'add_new_item' => 'Add New Book', 'new_item_name' => 'New Book', 'separate_items_with_commas' => 'Separate Books with commas', 'add_or_remove_items' => 'Add or remove Books', 'choose_from_most_used' => 'Choose from most used Books' ); $args = array( 'label' => 'Books', 'labels' => $labels, 'public' => true, 'hierarchical' => true, 'show_ui' => true, 'show_in_nav_menus' => true, 'args' => array( 'orderby' => 'term_order' ), 'rewrite' => array( 'slug' => 'books', 'with_front' => false ), 'query_var' => true ); register_taxonomy( 'books', 'book', $args ); 

Solutions Collecting From Web of "Die Standardschleife des Taxonomie-Archivs gibt 1 Datensatz statt 8 zurück"

Ihr Code sollte die CPT-Registrierung an init , obwohl ich nicht weiß, ob das Teil des Problems ist.

Ihr Code ist relativ einfach, und es funktioniert gut für mich, wenn ich es teste.

Sofern Sie die Hauptabfrage nicht geändert haben, sollte der von Ihnen gepostete Loop auf der Archivseite /books/accepting-yourself zurückgeben:

  1. Die veröffentlichten Posts
  2. In Ihrem “Buch” CPT
  3. In Ihrem “sich selbst akzeptieren” Begriff
  4. Eingeschränkt auf die Nummer, die Sie unter “Einstellungen -> Lesen” unter “Blog-Seiten höchstens anzeigen” ausgewählt haben

Es klingt wirklich wie Punkt # 4 ist das Problem. Wenn Sie verifizieren können, dass dies nicht der posts_per_page ist, dann wäre meine nächste Vermutung, dass etwas bereits die Hauptabfrage verändert und das posts_per_page Argument auf 1 – wahrscheinlich ein schlecht geschriebener Callback für den pre_get_posts Hook.

Wie bereits erwähnt, habe ich Ihren Code getestet und erhalte kein unerwartetes Verhalten. Ohne weitere Informationen, das ist alles was ich habe. Wenn Sie mehr Details in der Frage bearbeiten können, werde ich sehen, was ich noch tun kann.

Das Problem mit den nativen Leseeinstellungen besteht darin, dass es die Hauptschleife betrifft.

Sie können pre_get_posts mit einem bedingten Tag verwenden, um zu steuern, wie viele Posts in einem CPT- oder Taxonomy-Archiv angezeigt werden:

Sie können diesen Code mit der Bedingung für Ihre CPT- oder Taxonomie-Archivseite ändern:

 add_action( 'pre_get_posts', 'wpsites_taxonomy_archive_limit' ); function wpsites_taxonomy_archive_limit( $query ) { if( $query->is_main_query() && !is_admin() && is_tax( 'books' ) ) { $query->set( 'posts_per_page', '8' ); } } 

Der obige Code zeigt 8 Posts im Archiv der benutzerdefinierten Taxonomie, Buch.

Verwenden Sie für ein benutzerdefiniertes Post-Archiv beispielsweise Folgendes:

 add_action( 'pre_get_posts', 'wpsites_cpt_archive_limit' ); function wpsites_cpt_archive_limit( $query ) { if( $query->is_main_query() && !is_admin() && is_post_type_archive( 'book' ) ) { $query->set( 'posts_per_page', '8' ); } } 

Quelle http://codex.wordpress.org/Conditional_Tags#A_Taxonomy_Page