Hinzufügen einer seitenbasierten Abfrage zum benutzerdefinierten URL-Rewrite

Ich habe Folgendes eingerichtet, um “schöne” Post-Typ- und Kategorie-Permalinks zu erstellen:

function kdev_add_category_rules() { $post_types = array( 'kdev_photos', 'kdev_videos', 'kdev_articles' ); foreach($post_types as $post_type) { $pt_obj = get_post_type_object($post_type); $pt_rewrite = $pt_obj->rewrite; $pt_slug = $pt_rewrite['slug']; add_rewrite_rule('^'.$pt_slug.'/category/([^/]*)/?','index.php?post_type='.$post_type.'&category_name=$matches[1]','top'); } } add_action( "init", "kdev_add_category_rules" ); 

Das funktioniert großartig. Wenn ich sitename.com/photos/category/landscape/ besuche, erhalte ich alle “Fotos” in der Kategorie “Landschaft”.

Leider ist meine Seitennummerierung auf diesen Seiten kaputt.

Ich möchte sitename.com/photos/category/landscape/page/2, um die zweite Seite in dieser Abfrage anzuzeigen. Derzeit wird nur die gleiche Seite aktualisiert. Bei Überprüfung der Abfrage paged = 1.

Ich habe folgendes versucht, aber mein Wissen über Regex ist schlecht.

 add_rewrite_rule('^'.$pt_slug.'/category/([^/]*)/page/([^/]*)/?','index.php?post_type='.$post_type.'&category_name=$matches[1]&paged=$matches[2]','top'); 

Was ist die korrekte Rewrite-Regel?

Fortschritt

Interessanterweise ermöglicht das Entfernen der ersten “add_rewrite_rule”, dass die neue function funktioniert (aber alle anderen überschrieben werden). Ich / Fotos / Kategorie / Test-Kategorie / Seite / 2 / wird funktionieren, aber / Fotos / Kategorie / Test-Kategorie / wird nicht.

BEARBEITEN: Zusätzliche Informationen

Ich habe die Permalinks geladen!

Auf sitename.com/photos/category/landscape/page/2/ gibt get_query_var('paged') 1 .

/ Kategorie / Test-Kategorie / Seite / 2 / und / Fotos / Seite / 2 / beide arbeiten.

Post-Typen, die erstellt werden mit:

 // Register Custom Post Type function custom_post_type() { $labels = array( 'name' => _x( 'Photos', 'Post Type General Name', 'text_domain' ), 'singular_name' => _x( 'Photo', 'Post Type Singular Name', 'text_domain' ), 'menu_name' => __( 'Photos', 'text_domain' ), 'parent_item_colon' => __( 'Parent Photo:', 'text_domain' ), 'all_items' => __( 'All Photos', 'text_domain' ), 'view_item' => __( 'View Photos', 'text_domain' ), 'add_new_item' => __( 'Add New Photo', 'text_domain' ), 'add_new' => __( 'New Photo', 'text_domain' ), 'edit_item' => __( 'Edit Photo', 'text_domain' ), 'update_item' => __( 'Update Photo', 'text_domain' ), 'search_items' => __( 'Search photos', 'text_domain' ), 'not_found' => __( 'No photos found', 'text_domain' ), 'not_found_in_trash' => __( 'No photos found in Trash', 'text_domain' ), ); $args = array( 'label' => __( 'kdev_photos', 'text_domain' ), 'description' => __( 'Shared photos', 'text_domain' ), 'labels' => $labels, 'supports' => array( 'title' ), 'taxonomies' => array( 'category', 'post_tag' ), 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'show_in_nav_menus' => true, 'show_in_admin_bar' => true, 'menu_position' => 5, 'menu_icon' => '', 'can_export' => true, 'has_archive' => true, 'rewrite' => array( 'slug' => 'photos' ), 'exclude_from_search' => false, 'publicly_queryable' => true, 'capability_type' => 'page', ); register_post_type( 'kdev_photos', $args ); } 

Die Site verwendet das Roots-Theme, das Scribus Theme-Wrapper-Technik verwendet.

Die erste aufgerufene Vorlage ist base.php:

    <body >  
<div class="main " role="main">
<aside class="sidebar " role="complementary">

Welches ruft dann index.php auf:

   

Currently Browsing Page

<?php if($use_grid) echo '
    '; while (have_posts()) : the_post(); if($use_grid) get_template_part('templates/content', 'photo'); else get_template_part('templates/content', get_post_format()); endwhile; if($use_grid) echo '
'; ?> str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'end_size' => 1, 'mid_size' => 1, 'current' => max( 1, get_query_var('paged') ), 'total' => $wp_query->max_num_pages, ) ); echo ''; ?>

Solutions Collecting From Web of "Hinzufügen einer seitenbasierten Abfrage zum benutzerdefinierten URL-Rewrite"