0

I created a custom post type and custom taxonomy.

I can access archive page for this custom post type, showing all entries for this type, but I am unable to get url for a specific taxonomy term.

When I access URL http://example.com/chat/ I get archive.php template and all chat entries are listed, but when I access http://example.com/chat-category/category-1 (which is actually the URL shown in my wp-admin for this chat-category) I get a 404 and archive.php template wasn't even called. Also, creating template taxonomy-chat-category.php didn't work and I got also a 404.

Is there a correct URL for a specific category/term in a custom taxonomy?

The solution I can think of is adding a query var like ?chat-category=category-1 and modify the query in archive.php if this var is present, but I would rather prefer som nice and friendly URL solution.

This is my code:

    $labels = [
                    'name'              => _x( 'Categorías de chat', 'taxonomy general name', 'textdomain' ),
                    'singular_name'     => _x( 'Categoría de chat', 'taxonomy singular name', 'textdomain' ),
                    'search_items'      => __( 'Buscar categorías de chat', 'textdomain' ),
                    'all_items'         => __( 'Todas las categorías de chat', 'textdomain' ),
                    'parent_item'       => __( 'Categoría de chat padre', 'textdomain' ),
                    'parent_item_colon' => __( 'Categoría de chat padre:', 'textdomain' ),
                    'edit_item'         => __( 'Editar categoría de chat', 'textdomain' ),
                    'update_item'       => __( 'Actualizar categoría de chat', 'textdomain' ),
                    'add_new_item'      => __( 'Nueva categoría de chat', 'textdomain' ),
                    'new_item_name'     => __( 'Nuevo nombre de categoría de chat', 'textdomain' ),
                    'menu_name'         => __( 'Categoría de chat', 'textdomain' ),
               ];

    $args = [
        'hierarchical'      => true,
        'labels'            => $labels,
        'show_ui'           => true,
        'show_admin_column' => true,
        'query_var'         => true,
        'rewrite'           => array( 'slug' => 'chat-category' ),
        ];
 
    register_taxonomy('chat-category',  ['chat'], $args );
    unset($args);

    $args = [
                'labels' => ['name' => __( 'chats' ),
                             'singular_name' => __( 'chat' )
                            ],
                'can_export'          => true,
                'capability_type'     => 'post',
                'custom-fields'       => true,
                'exclude_from_search' => false,
                'has_archive'         => true,
                'hierarchical'        => true,
                'menu_icon'           => 'dashicons-video-alt2',
                'menu_position'       => 2,
                'public'              => true,
                'publicly_queryable'  => true,
                'taxonomies'          => ['chat-category'],
                'rewrite'             => ['slug' => 'chat'],
                'supports'            => [ 'author', 'title', 'editor', 'thumbnail', 'comments'],
                'show_ui'             => true,
                'show_in_menu'        => true,
                'show_in_nav_menus'   => true,
                'show_in_admin_bar'   => true,
            ];
    register_post_type( 'chat', $args);

1 Answer 1

0

Well, after a permalinks options reset (saving permalink options again) turns out that url http://example.com/chat-category/category-1 is working correctly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.