站点图标 主机格调

WordPress 文章标签 TAG 地址改写为  /tag/%tag_id% 的形式

中文网站的关键词标签都是中文的,所以 WordPresss 默认标签 TAG 地址也是中文的,中文标签有时候很长,并且在地址栏显示特殊字符,虽然不影响搜索,但是不是很好看,并且据说中文标签地址不利于 SEO,所以有必要对标签 TAG 地址进行优化。

个人觉得最好的优化就是将标签 TAG 地址改成标签 TAG ID,这样显示更短。

有的主题集成了使用标签 TAG ID 作为标签地址,也有不少的插件比如我之前用的 Smart SEO Tool 就可以将标签 URL 改写为: /tag/%tag_id%。用插件太多,拖累网站速度,所以我今天将插件改成了下面代码,放在 WordPress 主题 functions.php 文件

现在分享下如何通过代码集成到主题将标签地址改写为  /tag/%tag_id% 的形式?代码网上找的,我自己的网站使用该段代码。

/* WordPress文章标签地址改写为/tag/%tag_id%形式。
/*--------------------------------------------------------------------------------------*/
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;
}
退出移动版