CPT and rewrite rules

Question

I have CPT “Library” with “Library-category” taxonomy.

What I want to achieve is to have:

I’ve got it mostly to work with:

register_post_type(
    'library',
    array(
        'label'               => __( 'Library', 'my-theme' ),
        'description'         => __( 'Library', 'my-theme' ),
        'labels'              => array(
            'name'           => _x( 'Library', 'Post Type General Name', 'my-theme' ),
            'singular_name'  => _x( 'Library item', 'Post Type Singular Name', 'my-theme' ),
            'menu_name'      => __( 'Library', 'my-theme' ),
            'name_admin_bar' => __( 'Library item', 'my-theme' ),
            'add_new_item'   => __( 'Create New Library item', 'my-theme' ),
            'add_new'        => __( 'Add Library item', 'my-theme' ),
        ),
        'supports'            => array( 'title', 'editor', 'excerpt', 'revisions', 'thumbnail' ),
        'hierarchical'        => true,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'menu_position'       => 11,
        'menu_icon'           => 'dashicons-analytics',
        'show_in_admin_bar'   => true,
        'show_in_nav_menus'   => true,
        'can_export'          => true,
        'has_archive'         => true,
        'rewrite'             => array(
            'slug'       => 'library/%library-category%',
            'with_front' => false,
        ),
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'capability_type'     => 'page',
        'show_in_rest'        => true,
    )
);

register_taxonomy(
    'library-category',
    array( 'library' ),
    array(
        'labels'            => array(
            'name'          => _x( 'Categories', 'Taxonomy General Name', 'my-theme' ),
            'singular_name' => _x( 'Category', 'Taxonomy Singular Name', 'my-theme' ),
        ),
        'hierarchical'      => true,
        'public'            => true,
        'show_ui'           => true,
        'show_admin_column' => true,
        'show_in_nav_menus' => true,
        'show_tagcloud'     => false,
        'show_in_rest'      => true,
        'rewrite'             => array(
            'slug'       => 'library/%library-category%/',
            'with_front' => false,
        ),
    )
);

However, the https://example.com/library doesn’t work and returns 404. How can I fix it?

0
, kybernaut.cz 11 months 0 Answers 71 views 0

Leave an answer