Benutzerdefinierter Permalink für CPT: / Taxonomie / Name

Ich habe einen CPT namens “attivita”, und dies wäre der Standard-Permalink:

site.com/attivita/%name%

Für diesen speziellen CPT habe ich eine neue Taxonomie namens “location”, und ich möchte, dass mein CPT-Permalink wie folgt aussieht:

site.com/%location%/%name%

Ich möchte also nicht “attivita” zeigen. Das Problem ist, dass dies alle meine anderen Seiten vermasselt und 404 verursacht. Was ich im Moment tun kann, ist folgendes:

site.com/attivita/%location%/%name%

Was perfekt funktioniert und andere Seiten / Beiträge zeigen 404 nicht mehr, aber ich möchte nicht, dass “attivita” auftaucht.

Das ist meine function, die den CPT “attivita” schafft:

register_post_type( 'attivita', // CPT Options array( 'labels' => array( 'name' => __( 'Attività' ), 'singular_name' => __( 'Attività' ) ), 'public' => true, 'menu_position' => 5, 'menu_icon' => 'dashicons-id', 'has_archive' => false, 'rewrite' => array( 'slug' => 'attivita/%location%' ), 'hierarchical' => true, 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'page-attributes', 'post-formats' ) ) ); 

Und das ist die function, die den% location% der Rewrite-URL übernimmt und entsprechend der ausgewählten Taxonomie ändert:

 add_filter( 'post_type_link', 'store_type_link', 1, 3 ); function store_type_link( $post_link, $id = 0 ){ $post = get_post( $id ); $post_type = 'attivita'; $taxonomy = 'location'; if( !is_object( $post ) || $post->post_type != $post_type ) return $post_link; $slug = ''; if( $terms = wp_get_object_terms( $post->ID, $taxonomy ) ) $slug = $terms[0]->slug; return str_replace( '%'. $taxonomy .'%', $slug, $post_link ); } 

Wenn ich das umschreibe, funktioniert das nicht, weil, wie gesagt, andere Seiten / Beiträge 404 werden:

 'rewrite' => array( 'slug' => '%location%' ), 

Vielen Dank!

Solutions Collecting From Web of "Benutzerdefinierter Permalink für CPT: / Taxonomie / Name"