Wordpress通过插件去除分类前缀及父级目录

WordPress文章分类页面的路径默认自带前缀category,并且在前缀去掉之后,有子分类的话也会显示父级目录,对做外贸网站来讲,有些朋友不希望显示父级。今天分享两个插件,可以去除分类前缀及父级目录。

Wordpress通过插件去除分类前缀及父级目录

一、去掉分类链接前缀category

1、登录Wordpress后台,打开设置 → 固定链接,在“可选设置”里的“分类前缀”里输入半角字符“.”,保存即可去掉category。好处是不用插件,不会增加运行负担,但缺点是这个方法只是让人看起来将分类页面变成了二级目录,实际的地址是变成了:“yousite.com/./分类/” ,只是浏览器过滤了/./而已,并且原链接无法打开,出现404错误。

2、通过Wordpress插件,去掉分类前缀category。在安装插件处搜索“No Category Base (WPML)”,找到安装并启用即可。会对原来的分类地址做301跳转,对SEO有好处。

二、通过插件去除父级目录

1、同样在安装插件处搜索“Single Category Permalink”,安装并启用插件后,WordPress会自动识别去掉父级分类目录并跳转到新链接。效果举例如下:

未去除父级目录的URL:www.abc.com/news/industry-news/what-is-seo

已去除父级目录的URL:www.abc.com/what-is-seo

2、使用代码去除父级目录,如果不想使用插件,可以将以下代码添加到当前主题函数模板functi***.php中:

add_filter( 'category_link', 'zm_category_link', 10, 2 );
function zm_category_link( $catlink, $category_id ) {
global $wp_rewrite;
$catlink = $wp_rewrite->get_category_permastruct();
if ( empty( $catlink ) ) {
$catlink = home_url('?cat=' . $category_id);
} else {
$category = &get_category( $category_id );
$category_nicename = $category->slug;
$catlink = str_replace( '%category%', $category_nicename, $catlink );
$catlink = home_url( user_trailingsla**( $catlink, 'category' ) );
}
return $catlink;
}

可以实现相同的效果,添加代码后,记得保存一次固定链接设置才会生效。另外,推荐的其它可以正确去除分类前缀category的插件:Remove Category URL、WP No Base Permalink。