移除分类目录的No Category Base

去掉WordPress分类目录固定链接中的category网址

不知道各位注意到没有,奶爸建站笔记的分类目录网址是不包含category的。例如https://blog.naibabiji.com/jian-zhan-zhi-shi 比默认的网址会看着更简短。

而你的分类网址里面应该是包含category的。怎么去掉分类目录网址里面的category呢?有三种方法:

方法一:分类目录前缀使用.

分类目录前缀

在WordPress后台,设置分类目录前缀为.(英文点),保存就可以了。

方法二:添加代码到主题文件

把下面的代码复制了粘贴到主题的函数文件里面保存即可,方法来自我爱水煮鱼博客。

add_filter('request', function($query_vars) {
	if(!isset($_GET['page_id']) && !isset($_GET['pagename']) && !empty($query_vars['pagename'])){
		$pagename	= $query_vars['pagename'];
		$categories	= get_categories(['hide_empty'=>false]);
		$categories	= wp_list_pluck($categories, 'slug');

		if(in_array($pagename, $categories)){
			$query_vars['category_name']	= $query_vars['pagename'];
			unset($query_vars['pagename']);
		}
	}

	return $query_vars;
});

add_filter('pre_term_link', function($term_link, $term){
	if($term->taxonomy == 'category'){
		return '%category%';
	}

	return $term_link;
}, 10, 2);

方法三:使用插件

如果你装了WPJAM Basic这款插件的话,那么插件自带这个功能。

如果你讨厌WPJAM Basic 的话,可以装No Category Base这款插件,同时还支持多站点模式设置去除分类的category网址。

下载地址

Remove Category URL这款插件也可以去掉分类的category链接。https://wordpress.org/plugins/remove-category-url/

哪种方法更好用?

显而易见的,方法一是最好用的。

三种方法奶爸都测试了,没什么区别,虽然在sitemap里面,都会显示成

https://blog.naibabiji.com/./vps-you-hui

这种带有一个./的形式,不影响百度和Google的收录,也不影响网站上的正常显示,只在网站地图里面出现。

Scroll to Top