在类别URL上添加正斜杠(提供一个版本的URL)

时间:2012-11-06 作者:user983248

如何在类别URL上添加正斜杠,并仅提供该版本的类别(这意味着不以正斜杠结尾的URL将重定向到以正斜杠结尾的URL)。

我使用“WP No category base”插件删除了类别库,但我需要在类别URL上添加一个正斜杠。

示例:

www.example.com/es  <- this is a category (needs a forward-slash \'/\')

www.example.com/es/hola.html <- this is a post so, it\'s ok, no changes needed.
插件Permalink尾部斜杠修复程序不能解决这里的问题。

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

滤器category_link 所以WordPresscreates 删除类别的URL,以及redirect_canonical 所以它accepts 这些URL:

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, \'/\' ) . \'/\';

    if ( "$url/" === $request and is_category() )
        return $request;

    return $url;
}

结束

相关推荐

WP_SANITIZE_REDIRECT去掉了@符号(甚至从参数中)--为什么?

在我的Wordpress站点中,我有一个黑客,它查看uri并重定向到子域。问题是wp_redirect 呼叫wp_sanitize_redirect 这将使@ 签名,因此当用户尝试加载以下内容时[email protected] 加载的页面应为[email protected] 但事实上prefix.oursite.com?email=foobar.com (i.e. - no @ sign) 这个问题很容易解决-