如何在WordPress固定链接中仅显示最后一级子分类名称?
解决文章URL仅显示最后一级子分类的方法
嗨,这个问题我之前帮朋友处理过,刚好能给你说清楚怎么实现~ 假设你用的是最常见的WordPress系统(如果是其他系统可以告诉我,我再调整方法),下面两种方案任选其一:
方案一:手动加代码(轻量高效)
直接在你当前使用的主题的functions.php文件末尾,粘贴这段代码:
function custom_category_permalink($permalink, $post_id, $leavename) { // 获取当前文章的所有分类 $categories = get_the_category($post_id); if (!empty($categories)) { // 提取最后一级的子分类 $last_category = end($categories); // 把URL里的完整分类路径替换成最后一级分类的别名 $permalink = str_replace('%category%', $last_category->slug, $permalink); } return $permalink; } add_filter('post_link', 'custom_category_permalink', 10, 3); add_filter('post_type_link', 'custom_category_permalink', 10, 3);
贴完代码后,记得去后台的设置→固定链接页面,啥都不用改,直接点保存更改就行,这一步是让系统刷新URL规则,不然新的链接不会生效。
方案二:用插件(适合不想碰代码的同学)
如果你怕改代码出错,就装个插件搞定。比如Custom Permalinks或者Permalink Manager Lite这类工具,激活后在插件设置里找到分类URL的选项,设置成仅使用最后一级分类就OK了。不过插件多少会占点服务器资源,追求轻量的话优先选方案一。
几个小提醒
- 改
functions.php之前,一定要先备份文件!万一代码写错了,还能恢复回去; - 如果一篇文章属于多个分类,代码会自动取分类列表里的最后一个(按ID排序),要是你想指定某个分类,可以自己调整代码里的分类筛选逻辑;
- 旧的URL不会自动跳转成新的,要是怕影响SEO,装个
Redirection插件设置301重定向就行。
内容的提问来源于stack exchange,提问作者zhf
相关产品推荐
相关产品推荐

