Ich versuche, meine URL für einen custom_post_type umzuschreiben, der wr_events
mit einem seiner custom_taxonomy-Begriffe aus benannt istevent_type
add_action('init', 'wr_events');
function wr_events() {
register_taxonomy(
'event_type',
'wr_event',
array(
'label' => 'Types',
'singular_label' => 'Typ',
'hierarchical' => true,
'query_var' => true,
'rewrite' => array('slug' => 'events'),
)
);
$labels = array(
'name' => _x('Events', 'post type general name'),
'singular_name' => _x('Event', 'post type singular name')
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => null,
'supports' => array('title','editor','thumbnail', 'excerpt'),
'rewrite' => array(
//'slug' => 'event',
'slug' => 'events/%event%',
'with_front' => false
),
'has_archive' => 'events'
);
register_post_type( 'wr_event' , $args );
flush_rewrite_rules();
}
add_action('save_post', 'save_details');
add_filter('post_type_link', 'events_permalink_structure', 10, 4);
function events_permalink_structure($post_link, $post, $leavename, $sample)
{
if ( false !== strpos( $post_link, '%event%' ) ) {
$event_type_term = get_the_terms( $post->ID, 'event_type' );
$post_link = str_replace( '%event%', array_pop( $event_type_term )->slug, $post_link );
}
return $post_link;
}
In meinem Fall wäre mein Taxonomiebegriff "Workshops" oder "Vorträge" usw.
url/events/lectures
oder url/events/workshops
listet alle meine Beiträge zu dieser "Kategorie" auf und url/events
zeigt ein benutzerdefiniertes Archiv für alle meine Veranstaltungen. -> das ist genau das was ich will aber das einzige was nicht funktioniert ist die komplette URL zum Custom-Post selbst ...
url/events/lectures/post-name
- wirft einen 404!
Irgendeine Idee, warum das passiert? Meine events_permalink_structure()
Funktion scheint korrekt zu funktionieren, da sie meine Permalinks genau so ersetzt, wie ich es möchte.
Ich habe das Plugin "Rewrite Analyzer" installiert und es zeigt mir "Regex ist leer" für wr_event
.
Ich habe auch versucht, die Rewrite Rules zu löschen, indem ich die Permalink-Einstellungen aufgerufen habe. Jedoch keine wirkung.