Taxonomy: Why ‘with_front’ => false DOES NOT WORK?

Seriously, why 'with_front' => false does not work as it should be? It is supposed to remove TAXONOMY BASE NAME and my question is why it does not work?

I just dont want the taxonamy base slug appear in my URL and codex says 'with_front' => false should help but it does not. Leaving the slug empty like 'slug'=> '' generates 404 error.

Read More
register_taxonomy("tax_categories", array("products"), array(
    "hierarchical" => true,
    "label" => "Categories",
    "singular_label" => "Category",
    "show_ui" => true,
    'update_count_callback' => '_update_post_term_count',
    "rewrite" => array(     
        'with_front' => false,      
        'hierarchical' => true      
        )
    ));

This issue supposed to be fixed http://core.trac.wordpress.org/ticket/16807

Please help to understand that. Thank you.

Related posts

Leave a Reply

3 comments

  1. All with_front does is toggle whether or not a taxonomy link can have something else in front of it ie extra permalink stuff from the permalinks options page. For example with_front set to true makes this possible:

    blah.com/2011/09/tax/term
    

    with it set to false, all you can do is:

    blah.com/tax/term
    
  2. To remove the taxonomy base name, you can use:

    'rewrite' => ['slug' => '/', 'with_front' => false]
    

    However, this will make your (basic post type) posts go 404, if you have permalinks set to http://example.com/sample-post/. It seems you cannot have both custom taxonomy and posts reside in the root. Therefore you would go to Permalinks settings and set Custom structure , e.g. /blog/%postname%/.

    One more note

    A side effect is that your CPTs would have this “front”, too, e.g. blog/products. This is where 'with_front' => false comes to play. It’s designed to get you rid of the custom structure start. So in your product type registration, you would have:

    register_post_type( 'products',  array(
               'rewrite' => array(
                    'slug' => 'products',
                    'with_front' => false
                ),
                /* ... */
    ));
    
  3. Use the code below:

    'rewrite' => array( 
        'slug'          => '.',
        'with_front'    => false 
    ),
    

    Notice that when you rewrite the slug that the default page template is opened, when you go to the taxonomy page.