如果是中文网站,标签大部分都是中文,这个时候我们的标签URL就会包含这个中文。对于中文URL,大家可以参考《URL出现中文是否对优化有帮助》。简单来说,中文URL具有更好的描述性,但是搜索引擎会将中文转码,不利于管理,也看起来不美观。那么,如果我们放弃描述性,选择ID形式的标签URL,要如何实现呢
实现代码
- add_action('generate_rewrite_rules','tag_rewrite_rules');
- add_filter('term_link','tag_term_link',10,3);
- add_action('query_vars', 'tag_query_vars');
- function tag_rewrite_rules($wp_rewrite) {
- $new_rules = array(
- 'tag/(\d+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?tag_id=$matches[1]&feed=$matches[2]',
- 'tag/(\d+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?tag_id=$matches[1]&feed=$matches[2]',
- 'tag/(\d+)/embed/?$' => 'index.php?tag_id=$matches[1]&embed=true',
- 'tag/(\d+)/page/(\d+)/?$' => 'index.php?tag_id=$matches[1]&paged=$matches[2]',
- 'tag/(\d+)/?$' => 'index.php?tag_id=$matches[1]',
- );
- $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
- }
- function tag_term_link($link,$term,$taxonomy) {
- if($taxonomy=='post_tag') {
- return home_url('/tag/'.$term->term_id);
- }
- return $link;
- }
- function tag_query_vars($public_query_vars) {
- $public_query_vars[] = 'tag_id';
- return $public_query_vars;
- }
代码来源于网络,不记得来源了~我现在已经用上了
对了添加上面的函数代码后要去设置固定链接页面保存更改才会生效
注意:
- 以上方法会同时存在标签中文URL和标签IDURL,有条件的可以想办法重定向
- 如果没做重定向的可以添加canonical标签,毕竟网站的所有链接入口都是ID形式的了,不重定向个人觉得关系也不大
- 或者更干脆点,用Auto Tag Slug别名插件解决标签中文URL的问题
转载请注明:思享SEO博客 » WordPress标签URL中文怎么改为ID的形式