WordPress标签URL中文怎么改为ID的形式

Wordpress 思享 736浏览

如果是中文网站,标签大部分都是中文,这个时候我们的标签URL就会包含这个中文。对于中文URL,大家可以参考《URL出现中文是否对优化有帮助》。简单来说,中文URL具有更好的描述性,但是搜索引擎会将中文转码,不利于管理,也看起来不美观。那么,如果我们放弃描述性,选择ID形式的标签URL,要如何实现呢

wordpress

实现代码

  1. add_action('generate_rewrite_rules','tag_rewrite_rules');
  2. add_filter('term_link','tag_term_link',10,3);
  3. add_action('query_vars', 'tag_query_vars');
  4. function tag_rewrite_rules($wp_rewrite) {
  5.     $new_rules = array(
  6.     'tag/(\d+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?tag_id=$matches[1]&feed=$matches[2]',
  7.     'tag/(\d+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?tag_id=$matches[1]&feed=$matches[2]',
  8.     'tag/(\d+)/embed/?$' => 'index.php?tag_id=$matches[1]&embed=true',
  9.     'tag/(\d+)/page/(\d+)/?$' => 'index.php?tag_id=$matches[1]&paged=$matches[2]',
  10.     'tag/(\d+)/?$' => 'index.php?tag_id=$matches[1]',
  11.     );
  12.     $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
  13. }
  14. function tag_term_link($link,$term,$taxonomy) {
  15.     if($taxonomy=='post_tag') {
  16.         return home_url('/tag/'.$term->term_id);
  17.     }
  18.     return $link;
  19. }
  20. function tag_query_vars($public_query_vars) {
  21.     $public_query_vars[] = 'tag_id';
  22.     return $public_query_vars;
  23. }

代码来源于网络,不记得来源了~我现在已经用上了

对了添加上面的函数代码后要去设置固定链接页面保存更改才会生效

注意:

  • 以上方法会同时存在标签中文URL和标签IDURL,有条件的可以想办法重定向
  • 如果没做重定向的可以添加canonical标签,毕竟网站的所有链接入口都是ID形式的了,不重定向个人觉得关系也不大
  • 或者更干脆点,用Auto Tag Slug别名插件解决标签中文URL的问题

推荐阅读

静态URL和动态URL优化有什么区别?

无论你是静态还是动态,我们都认为同样都是url来对待。...

url中使用#号好不好?

一般来说,url当中的#号是一个锚点的标志位,这样的url打开之后会将访问者的视线定位在指定位置上,令访问者直接看到网页中间的一段内容。自从推特流行开始,#号被附予了新的意义——话题。很多站长直接在#号后面加参数且参数是有效的,即#号去掉与不去掉,打......

用中文URL利于SEO优化吗?

转码时,中文会变成一堆符号,不利于传播,用户反而无法从URL中判断网页的内容。...