How can I a add forward slash on categories URLs and serve only that version of a category (meaning URLs not ending in forward-slash will redirect to URLs ending in forward slash).
I manage to remove the category base using the “WP No Category Base” plugin but I need to add a forward slash on the category URL.
Examples:
www.example.com/es <- this is a category (needs a forward-slash "https://wordpress.stackexchange.com/")
www.example.com/es/hola.html <- this is a post so, it's ok, no changes needed.
The plugin Permalink Trailing Slash Fixer doesn’t solve the problem here.
1 Answer
Filter category_link
so WordPress creates slashed URLs for categories, and redirect_canonical
so it accepts those URLs:
add_filter( 'category_link', 'wpse_71666_trailingslash_cat_url' );
add_filter( 'redirect_canonical', 'wpse_71666_trailingslash_cat_url', 20, 2 );
function wpse_71666_trailingslash_cat_url( $url, $request="" )
{
if ( 'category_link' === current_filter() )
return rtrim( $url, "https://wordpress.stackexchange.com/" ) . "https://wordpress.stackexchange.com/";
if ( "$url/" === $request and is_category() )
return $request;
return $url;
}