WordPress自定义分类法slug添加指定词并移除分类名的实现方法
解决WordPress分类存档URL自定义需求:移除分类名并添加后缀
刚好之前帮朋友处理过一模一样的需求,给你一套亲测有效的方案,分三步就能搞定:
第一步:修改分类的重写规则
我们需要通过register_taxonomy_args过滤器调整brand分类的URL重写结构,让它生成{term-slug}-shop格式的路径。把下面的代码添加到你的主题functions.php文件里,或者自定义功能插件中(更推荐后者,避免主题更新丢失代码):
add_filter( 'register_taxonomy_args', 'custom_brand_taxonomy_rewrite', 10, 3 ); function custom_brand_taxonomy_rewrite( $args, $taxonomy, $object_type ) { // 只针对brand分类生效 if ( 'brand' === $taxonomy ) { $args['rewrite'] = array( 'slug' => '%brand%-shop', // 定义URL结构为分类别名+shop 'with_front' => false, // 如果你固定链接前缀有自定义设置,可根据情况调整为true 'hierarchical' => false, 'ep_mask' => EP_NONE ); } return $args; }
第二步:修正前端输出的分类链接
默认情况下,WordPress生成的分类链接还是会沿用旧的格式,所以我们需要用term_link过滤器替换旧链接,确保前端显示的是新URL:
add_filter( 'term_link', 'custom_brand_term_link', 10, 3 ); function custom_brand_term_link( $termlink, $term, $taxonomy ) { // 仅处理brand分类的链接 if ( 'brand' === $taxonomy ) { // 替换原链接中的 /brand/{slug}/ 为 /{slug}-shop/ $termlink = str_replace( '/brand/' . $term->slug . '/', '/' . $term->slug . '-shop/', $termlink ); } return $termlink; }
第三步:刷新固定链接规则
这一步非常关键,不刷新的话新的重写规则不会生效:
- 登录WordPress后台,进入「设置」→「固定链接」页面
- 不需要修改任何设置,直接点击「保存更改」按钮,WordPress会自动更新重写规则
注意事项
- 确保你的服务器支持URL重写:Apache服务器需要开启
mod_rewrite模块,Nginx服务器需要配置对应的重写规则(一般WordPress主题会提供参考配置) - 检查URL冲突:提前确认没有其他页面、文章或分类的slug和
{term}-shop格式重复,比如如果有页面叫nike-shop,会导致访问冲突,需要提前调整 - 代码存放建议:优先使用自定义功能插件存放代码,避免主题更新时丢失修改内容
内容的提问来源于stack exchange,提问作者Cray
相关产品推荐
相关产品推荐

