WordPress 去除 category 前缀的三种方法

  这是个老生常谈的问题了,网上有一大堆的解决方法,这里进行一个总结,可分为三种方法:

一、使用插件

  网上有很多相关的 WordPress 插件,都可以解决这个问题,不过大部分插件都是把所有的分类都写入 WordPress 的 rewrite 规则,这样会造成 rewrite 规则会非常臃肿,反而会使得 WordPress 变慢。所以,这个方法不是很推荐。

二、设置分类目录前缀

  另外 WordPress 还有一个非常方便的方法,可以说是最简化去掉分类目录 URL 中的 category。只需要在 WordPress 后台,点击「设置」菜单下的「固定链接」子菜单,将「分类目录前缀」设置为 . 就可以:

三、写 PHP 语句

  如果仔细观察一下去掉 category 的分类目录 url:
https://www.hack520.com/wordpress/,
是不是和 WordPress 的页面规则是一样的,比如开心技术乐园微技术页面:
https://www.hack520.com/microtech/,
那么我们可以使用页面的 rewrite 规则来处理。

  当 WordPress 进入页面 rewrite 规则的时候,我们判断一下,当前的 pagename 是不是某个分类的 slug,如果是,就把当前的 query_var 中的 pagename 换成 category_name,这样就可以实现了。

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);

人已赞赏
WordPress教程

WP常用函数解析-get_bloginfo()

2020-11-2 17:13:25

WordPress教程

WordPress ID 重排代码文件 – 打开即可重新排列,亲测无误!

2020-12-23 22:45:20

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索