WordPress 常规的TAG格式是中文字符的,当然如果我们是中文字符的话。有些朋友认为这样不利于SEO,于是希望将全部的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;}
添加到 Functions.php 中就可以自动实现且无需插件。