Erstellen einer einfachen Seitenumbruch für benutzerdefinierte Post-Typ-Vorlagen

Ich habe benutzerdefinierte Post-Post-Typ Anruf ‘Nachrichten’ und ich kämpfe um es richtig zu paginieren. Ich suche nach einem einfachen Prev und Next Links, nicht besorgt über Seitenzahlen in der Mitte.

In page-news.php ist das mein Code:

 'news', 'posts_per_page' => 2, 'paged' => $paged); $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); ?> // Loop   

Der obige Code zeigt 2 Posts, aber keine Paginierungslinks

Dies ist mein benutzerdefinierter Post-Typ-Code:

 function custom_post_news() { register_post_type( 'news', array('labels' => array( 'name' => __('News', 'post type general name'), /* This is the Title of the Group */ 'singular_name' => __('News', 'post type singular name'), /* This is the individual type */ 'add_new' => __('Add New', 'custom post type item'), /* The add new menu item */ 'add_new_item' => __('Add New'), /* Add New Display Title */ 'edit' => __( 'Edit' ), /* Edit Dialog */ 'edit_item' => __('Edit'), /* Edit Display Title */ 'new_item' => __('New '), /* New Display Title */ 'view_item' => __('View'), /* View Display Title */ 'search_items' => __('Search news'), /* Search Custom Type Title */ 'not_found' => __('Nothing found in the Database.'), /* This displays if there are no entries yet */ 'not_found_in_trash' => __('Nothing found in Trash'), /* This displays if there is nothing in the trash */ 'parent_item_colon' => '' ), /* end of arrays */ 'description' => __( 'This is the example custom post type' ), /* Custom Type Description */ 'public' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'show_ui' => true, 'query_var' => true, 'menu_position' => 2, /* this is what order you want it to appear in on the left hand side menu */ 'capability_type' => 'post', 'hierarchical' => false, 'rewrite' => array('slug' => 'news', 'with_front' => true ), /* the next one is important, it tells what's enabled in the post editor */ 'supports' => array( 'title', 'editor', 'thumbnail') ) ); } // REGISTER TAXOMONIES add_action( 'init', 'custom_post_news'); register_taxonomy( 'custom_news', array('news'), /* if you change the name of register_post_type( 'movies', then you have to change this */ array('hierarchical' => true, 'labels' => array( 'name' => __( 'News Categories' ), /* name of the custom taxonomy */ 'singular_name' => __( 'news Category' ), /* single taxonomy name */ 'search_items' => __( 'Search news Categories' ), /* search title for taxomony */ 'all_items' => __( 'All news Categories' ), /* all title for taxonomies */ 'parent_item' => __( 'Parent news Category' ), /* parent title for taxonomy */ 'parent_item_colon' => __( 'Parent news Category:' ), /* parent taxonomy title */ 'edit_item' => __( 'Edit news Category' ), /* edit custom taxonomy title */ 'update_item' => __( 'Update news Category' ), /* update title for taxonomy */ 'add_new_item' => __( 'Add New news item' ), /* add new title for taxonomy */ 'new_item_name' => __( 'New Custom news' ) /* name title for taxonomy */ ), 'show_ui' => true, 'query_var' => true, ) ); 

Dies ist ein benutzerdefiniertes Thema (von Grund auf neu erstellt), daher gibt es nichts in meiner functions.php, das sich auf eine Seitennummerierung bezieht. Ich habe das Internet nach Antworten durchforstet, aber ich bekomme eine andere Lösung und nichts scheint zu funktionieren.

Ich habe auch keine Archiv-News.php, da ich nicht sicher bin, ob das implementiert werden muss oder nicht?

Solutions Collecting From Web of "Erstellen einer einfachen Seitenumbruch für benutzerdefinierte Post-Typ-Vorlagen"

posts_nav_link() wird hier nicht funktionieren

Nützlich für die “seitenweise” Navigation von Index-, Kategorie- und Archivseiten.

Sie müssen die generischen next_posts_link() und previous_posts_link() . $max_pages nur sicher, dass Sie den Parameter $max_pages für next_posts_links() sonst funktioniert es nicht, und wenn Sie diese Seite als statische Titelseite verwenden, sollten Sie diese page und nicht paged

BEARBEITEN 1

Verwenden Sie die oben genannten Links wie folgt

 next_posts_link( 'Older Entries', $loop->max_num_pages ); previous_posts_link( 'Newer Entries' ); 

BEARBEITEN 2

Ich denke, da ist ein kleines Missverständnis. Versuche Folgendes:

  • 'has_archive' => true Sie in Ihren benutzerdefinierten Post-Typ-Argumenten, in denen Sie Ihren benutzerdefinierten Post-Typ registrieren, Folgendes hinzu: 'has_archive' => true . Ihre function sollte so aussehen

     function custom_post_news() { register_post_type( 'news', array('labels' => array( 'name' => __('News', 'post type general name'), /* This is the Title of the Group */ 'singular_name' => __('News', 'post type singular name'), /* This is the individual type */ 'add_new' => __('Add New', 'custom post type item'), /* The add new menu item */ 'add_new_item' => __('Add New'), /* Add New Display Title */ 'edit' => __( 'Edit' ), /* Edit Dialog */ 'edit_item' => __('Edit'), /* Edit Display Title */ 'new_item' => __('New '), /* New Display Title */ 'view_item' => __('View'), /* View Display Title */ 'search_items' => __('Search news'), /* Search Custom Type Title */ 'not_found' => __('Nothing found in the Database.'), /* This displays if there are no entries yet */ 'not_found_in_trash' => __('Nothing found in Trash'), /* This displays if there is nothing in the trash */ 'parent_item_colon' => '' ), /* end of arrays */ 'description' => __( 'This is the example custom post type' ), /* Custom Type Description */ 'public' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'show_ui' => true, 'query_var' => true, 'menu_position' => 2, /* this is what order you want it to appear in on the left hand side menu */ 'capability_type' => 'post', 'hierarchical' => false, 'rewrite' => array('slug' => 'news', 'with_front' => true ), 'has_archive' => true, /* the next one is important, it tells what's enabled in the post editor */ 'supports' => array( 'title', 'editor', 'thumbnail') ) ); } 
  • Lege nach diesem Zusatz deine Permalinks ab und besuche dann die Homepage

  • Erstelle eine archive-news.php . Es sollte so aussehen

     < ?php while ( have_posts() ) : the_post(); ?> // Loop < ?php endwhile; ?>  
  • Verwenden pre_get_posts als Nächstes in Ihrer functions.php pre_get_posts , um die pre_get_posts nach pre_get_posts zu ändern.

     add_action( 'pre_get_posts', function ( $q ) { if( !is_admin() && $q->is_main_query() && $q->is_post_type_archive( 'news' ) ) { $q->set( 'posts_per_page', 2 ); } }); 
  • Löschen Sie die Seite, die Sie im Back-End erstellt haben. Alles sollte jetzt perfekt funktionieren