Search code examples
wordpresswordpress-themingcustom-taxonomytaxonomy-terms

Taxonomy term permalink is not working as expected


I have CPT called forms_cpt and a Taxonomy called forms_tax. In my page-forms.php I am able to crate a list of forms_tax terms like

<ul>
<?php
foreach ($tax_terms as $tax_term) {
echo '<li>' . '<a href="' . esc_attr(get_term_link($tax_term, $taxonomy)) . '" title="' . sprintf( __( "View all posts in %s" ), $tax_term->name ) . '" ' . '>' . $tax_term->name.'</a></li>';
}
?>
</ul>

which is creating a list of terms. but whenever I click on them it landed in a wrong URL. For example if click on soccer term it landed at

http://www.domain.ca/soccer/

instead of

http://www.domain.ca/Forms/soccer/

What am I doing wrong?

 function gen_forms_tax() {

    $labels = array(
        'name'                       => 'Form Types',
        'singular_name'              => 'Form Type',
        'menu_name'                  => 'Form Types',
        'all_items'                  => 'All Form Types',
        'parent_item'                => 'Form Parent',
        'parent_item_colon'          => 'Form Parents:',
        'new_item_name'              => 'New Form Name',
        'add_new_item'               => 'Add New Form',
        'edit_item'                  => 'Edit Form',
        'update_item'                => 'Update Form',
        'separate_items_with_commas' => 'Separate Form with commas',
        'search_items'               => 'Search Form',
        'add_or_remove_items'        => 'Add or remove Form',
        'choose_from_most_used'      => 'Choose from the most used Form',
        'not_found'                  => 'Form Not Found',
    );
    $args = array(
        'labels'                     => $labels,
        'hierarchical'               => true,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => true,
    );
    register_taxonomy( 'forms_tax', array( 'forms_cpt' ), $args );

}

add_action( 'init', 'gen_forms_tax', 0 );
 
 

function gen_forms_cpt() {

    $labels = array(
        'name'                => 'Forms',
        'singular_name'       => 'Form',
        'menu_name'           => 'Form',
        'name_admin_bar'      => 'Form',
        'parent_item_colon'   => 'Form Parent:',
        'all_items'           => 'All Forms',
        'view_item'           => 'View Forms',
        'add_new_item'        => 'Add New Form',
        'add_new'             => 'Add New Form',
        'new_item'            => 'New Form',
        'edit_item'           => 'Edit Form',
        'update_item'         => 'Update Form',
        'search_items'        => 'Search Form',
        'not_found'           => 'Form Not found',
        'not_found_in_trash'  => 'Form Not found in Trash',
    );
    $args = array(
        'description'         => 'This Post Type Adds Form to Website',
        'labels'              => $labels,
        'supports'            => array( 'title', 'excerpt', ),
        'taxonomies'          => array( 'forms_tax' ),
        'hierarchical'        => true,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'menu_position'       => 5,
        'rewrite'             => array( 'slug' => 'Forms','with_front' => true, 'hierarchical' => true ),
        'can_export'          => true,
        'has_archive'         => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'capability_type'     => 'post',
    );
    register_post_type( 'forms_cpt', $args );

}

add_action( 'init', 'gen_forms_cpt', 0 );

Solution

  • Solution : You need to follow the steps given below.

    1) Go to Settings from Admin panel.
    2) Go to permalinks
    3) Save the permalinks 
    

    It should work after you save the parmalinks. You always need update the permalinks once you add any rewrite rule to the site.