Permalinks für benutzerdefinierte Post-Typen in benutzerdefinierten Taxonomien nicht gefunden

Ich habe versucht, den Rat von TheDeadMedic in diesem Beitrag anzuwenden, um die folgende URL-Struktur zu erreichen:

example.com/activities = eine WP-Seite
example.com/activities/type-term = ein benutzerdefiniertes Archiv
example.com/activities/type-term/activity-post = ein benutzerdefinierter Post

Alle URLs funktionieren bis zur niedrigsten, die einen WordPress-Fehler “nicht gefunden” zurückgibt.

Ich weiß nicht, ob ich die Rewrite-Regeln filtern muss, damit das funktioniert. Der Beitrag, den ich oben verlinkt habe, weist darauf hin, dass ich alles Notwendige getan habe.

Jede Hilfe wäre sehr dankbar, danke. Hier ist mein Code:

/* * Register custom content objects on initiation */ add_action('init', 'register_type'); // Type taxonomy (activities) add_action('init', 'register_activity'); // Activity post-type add_filter('post_type_link', 'filter_activity_link', 10, 2); // Filter permalinks for activity post-type /* * Register Type custom taxonomy for activities */ function register_type() { $labels = array( 'name' => ('Types'), 'singular_name' => ('Type'), 'add_new' => ('Add New Type'), 'add_new_item' => ('Add New Type'), 'edit_item' => ('Edit Type'), 'new_item' => ('New Type'), 'view_item' => ('View Type'), 'search_items' => ('Search Type'), ); $args = array( 'labels' => $labels, 'public' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'activities', 'with_front' => false ), ); register_taxonomy( 'type', 'activity', $args ); } /* * Register Activity custom post-type */ function register_activity() { $labels = array( 'name' => ('Activities'), 'singular_name' => ('Activity'), 'all_items' => ('All Activities'), 'add_new_item' => ('Add New Activity'), 'edit_item' => ('Edit Activity'), 'new_item' => ('New Activity'), 'view_item' => ('View Activity'), 'search_items' => ('Search Activities') ); $args = array( 'labels' => $labels, 'public' => true, 'show_in_nav_menus' => false, // Do not appear directly in navigation 'menu_position' => 5, 'hierarchical' => false, 'query_var' => true, 'supports' => array( 'title', 'editor', 'type', 'revisions', 'comments' ), 'rewrite' => array( 'slug' => 'activities/%tax_type%', 'with_front' => false ) ); register_post_type( 'activity', $args ); } /* * Update Type rewrite slug with applicable terms */ function filter_activity_link($link, $post) { if ($post->post_type != 'activity') return $link; if ($cats = get_the_terms($post->ID, 'type')) $link = str_replace('%tax_type%', array_pop($cats)->slug, $link); return $link; } 

AKTUALISIEREN

OK, es stellt sich heraus, dass Sie immer Umschreibregeln hinzufügen müssen, um diesen process abzuschließen. Die URLs können korrekt angezeigt werden, aber die database versteht sie nicht. Dieser Beitrag hat mir enorm geholfen, zusammen mit diesen Referenzinformationen zu Regex.

Ich musste nur den Code hinzufügen

 add_rewrite_rule('^activities/([^/]*)/([^/]*)/?$' ,'index.php?activity=$matches[2]','top'; 

Hoffe, das hilft jemandem.

Solutions Collecting From Web of "Permalinks für benutzerdefinierte Post-Typen in benutzerdefinierten Taxonomien nicht gefunden"