it-swarm.com.de

Einen benutzerdefinierten Permalink nach Typ mit Taxonomiebegriff umschreiben?

Ich versuche, meine URL für einen benutzerdefinierten Beitragstyp mit dem Namen wr_events mit einem der benutzerdefinierten Steuerbegriffe von event_type umzuschreiben.

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ären meine Taxonomiebegriffe "Workshops" oder "Vorträge" usw. url/events/lectures oder url/events/workshops listet alle meine Beiträge zu dieser "Kategorie" auf, 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 Funktion events_permalink_structure() 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.

15
mathiregister

Ändern Sie alle% event% in% event_type%. Ich hoffe das klappt bei dir.

10
offroff