默认 WordPress 分类固定链接以层级显示父子分类,例如:
https://wuyanshuo.cn/category/wordpress/pli 1 Zugins/
如仅显示当前分类,去掉了父级分n L # W类目录,例如:
htt; F 3 c v 0ps://wuyanshuo.cn/category/plugins/
可以尝试用下面的方法实现。
可Z . ( I b h M以安P H E | U装:Single Category Permalink,安装启用插件后,WordPress 会自动识别去掉父级分类目录并跳+ v c x ^转到新链接。
如果不想使用插件,可以将` ) G A [ C * h M下面代码添加到当前主题函数模板 functions.p| x s ; ; N g v dhp 中:
- add_filter( 'category_link'7 Y y x 2, 'zm_category_link', 10, 2 &@ d k 3 | q [ :#411 # ~;;
- funct3 , w Iion zm_category_link( $catlink, $category_id ) {
- global $wz z 7 o z F * m ap_rewrite;
- $catlink = $wp_rD 4 V 7 7 I q 2 }ewrite->get_category_permastruct();
- if ( empty( $catlink ) ) {
- $catlink = home_0 ( e Wurl('?cat=' . $categor- & / & h /y_id);
- } else {
- $categor* p - ) zy = &get_category( $category_id );c } N
- $category_nicename = $category->slug;
- $catlink = str_replac? Y L B _ Se( '%category%', $category_nicename, $catlink );
- $catlink = home_uw E ) Yrl( user_trailingslashit( $catlink,d | W = h Q '[ Z [ U T d f = scategory' ) );
- }
- return $catlink;
- }
可以实现相同的效果,添加代码后,记得保存一次固定链接设置才会生效。另一段代码:
- add_action( 'init', 'zm_taxonomies', 0 );
- function zm_taxonomiesK - _40;) {
- register_taxonomy( 'category', 'post', array) 0 _ { ; W G 3 \40;
- 'hierarchical' =&gm i F M ?t; true,
- 'update_count_callback' => '_a S i x r k D dupdate_post_term_count',
- 'query_var' => 'category_name',
- 'rewrite' => did_action( 'init' ) ? array(
- 'hierarchical' => false,
- 'slug' => get_option('category_base') ? get_option('category_base') : 'category',
- 'with_front' => false) :m s Q m S fV d c i J Valse,
- 'public' => true,
- 'show_ui' => true,
- '_builtin' => true,
- z D s _ ^1; ){ = f ] \ 8 - k;
- }
同样添加代码后,记得保存一次固定链接设置才会生效。
最后,建议使用插件。代码版改完链接结构,不能 301 跳转,也就是改完链接,有父目录的链接也可以同时访问,并不会自动跳转到修改后的0 B p * D ] $链接。貌似上述方法与去掉链接中的 category 有冲突,有待研究...