正文:
中文网站的关键词标签都是中文的,所以 WordPresss 的默认标签地址也是中文的。中文标签有时很长,地址栏会显示特殊字符。虽然不影响搜索,但是不太好看,而且据说中文标签地址不利于 SEO,所以需要对标签地址进行优化。
个人认为最好的优化是把标签地址改成标签 ID,这样显示更短。
有些主题集成了标签 ID 作为标签地址,还有很多插件。比如我之前用的智能 SEO 工具,可以把标签 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;
}
转载请注明:汇站网 » (WordPress 教程)利用 /tag/%tag_id% 修改文章标签 TAG 地址