Dynamische Taxonomie im Permalink machte alle anderen Einträge nicht gefunden?

Ich habe meine Taxonomien im Permalink anstelle des Slugs vom Typ “Benutzerdefinierter Beitrag” hinzugefügt und es funktioniert einwandfrei. Ich würde sogar sagen, dass alles in Ordnung war, aber das Ändern der WP-Installation auf Multisite hat alle anderen Posts und Seiten (nicht die CPTs) zerstört.

Die Permalinks werden jedes Mal korrekt erzeugt als? P = 123 oder andere erratene URLs, so dass die Post-Info gefunden, aber nicht für die Schleife gefunden wird.

So habe ich die Taxonomie anstelle des CPT-Slugs bekommen:

1) Die post_type Umschreibung ist definiert als% listing_type% und funktioniert wie folgt:

'rewrite' => array( 'slug' => '/%listing_type%', 'with_front' => false, 

2) Und die folgenden functionen ersetzen den% listing_type% und den “listing_type” String von den urls und Termlinks, die zB von wp_list_categories () erzeugt wurden (Entfernen des CPT-Namens von der URL)

  function listing_type_link_filter_function( $post_link, $id = 0, $leavename = FALSE ) { if ( strpos('%listing_type%', $post_link) === 'FALSE' ) { return $post_link; } $post = get_post($id); if ( !is_object($post) || $post->post_type != 'listing' ) { return $post_link; } $terms = wp_get_object_terms($post->ID, 'listing_type'); if ( !$terms ) { return str_replace('/listing_type', '/', $post_link); } return str_replace('%listing_type%', $terms[0]->slug, $post_link); } add_filter('post_type_link', 'listing_type_link_filter_function', 1, 3); function term_link_filter_function( $termlink, $term, $taxonomy ) { if ( strpos('listing_type', $termlink) === 'FALSE' ) { return $termlink; } else return str_replace('/listing_type', '', $termlink); } add_filter('term_link', 'term_link_filter_function', 1, 3); 

Jetzt bin ich mir fast sicher, dass alles gut funktioniert hat, bevor ich es zu einer Multisite gemacht habe. Ich werde erforschen, wie man es sicher macht (die Multisite-Sache) und das Update später veröffentlichen.

Irgendeine Idee, was die Pfosten und die Seiten NICHT in den oben genannten CPTs brechen könnte? Wenn ich% s aus dem post_type-Slug entferne, funktioniert alles einwandfrei.

UPDATAE

Ich bemerkte, dass andere Arbeitsbeispiele für jeden benutzerdefinierten Permalink eine Rewrite-Regel hatten, also fügte ich sie hinzu, und VOILA, die Beiträge sind jetzt behoben, aber die Seiten sind immer noch kaputt

Dies funktioniert teilweise (nur Beiträge)

 global $wp_rewrite; $wp_rewrite->extra_permastructs['listing'][0] = "%listing_type%/%postname%"; add_rewrite_rule("([^/]+)/([^/]+)/?$", 'index.php?post_type=listing&listing_type=$matches[1]&name=$matches[2]', 'bottom'); add_rewrite_rule("([^/]+)/([^/]+)/?$", 'index.php?post_type=listing&listing_type=$matches[1]&page=$matches[2]', 'bottom'); 

Der obige Code (innerhalb der CPT-Definitionsfunktion) hat nur die Posts repariert, aber die Seiten (was die zweite Zeile für add_rewrite_rule betraf) sind immer noch kaputt.

Solutions Collecting From Web of "Dynamische Taxonomie im Permalink machte alle anderen Einträge nicht gefunden?"