Add forward slash on categories url (serve one version of a url)

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
1

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;
}

Leave a Comment