wordpress移除分类的url中的category的方法

作者

默认的情况下,wordpress的分类链接中会存在 category 。看着有点长,移除的方法也很简单。需要两个步骤,第一: 过滤分类url的链接 ,第二添加一个重写规则

过滤分类中的url的链接

add_filter('category_link', function ($termlink, $id) {
    return home_url() .'/' . get_term($id)->slug . '/';
}

新增一个重写规则

add_action('init', function() {
    add_rewrite_rule("^([a-z]+)$",'index.php?category_name=$matches[1]','bottom');
}

把以上代码写入文件 functions.php 就可以了。 add_rewrite_rule 最后一个参数是 bottom 应该是放到最后面,防止破坏其他的路由。这里假设分类的名字是[a-z]组成的。

需要注意的地方,分类的url末尾自动加上/

add_filter('user_trailingslashit', function ($string, $type_of_url) {
    if ($type_of_url == 'category')
        $string = trailingslashit($string);
    return $string;
}, 10, 2);

回复

电子邮件地址不会被公开。