WordPress文章标签默认是中文,比如标签少的时候可以自己修改别名,比如拼音或者英文,但是有一个缺点就是同音词的时候不好区分,只能在别名后面加-1,-2这样的区分,比如手机,收集,首级,遇到同音词的时候就很不爽,展示方式看个人喜欢,除了中文展示会转码外,并没什么卵用,个人觉得用ID展示最好,比如Discuz的标签展示方式就最好。
之前在WordPress群里聊到这个问题的时候,ieoptimize优化插件作者说到这个问题,他是把这个功能放到了插件里面,博主们可以去下载这个插件试试,也许你能用上哦,代码也可以单独提取出来,代码如下,以下代码加在主题目录的 functions.php
中即可实现,添加代码后需要进入后台重新保存一下固定链接。
如果想以后更换主题的时候不用重新添加代码,请查看另一篇文章WordPress制作插件添加常用代码
/* WordPress文章标签以id方式展示 /* 文章来源:https://wpriji.com/m/20200484.html /*--------------------------------------------------------------------------------------*/ 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; }
文章TAG标签用id展示后效果如下:
当然标签也是一个分类,具体是用拼音还是英文还是id看个人喜欢。
以下还有一种方案,就是默认ID展示,如果修改过别名,就以修改过的别名展示.
这段代码会首先使用 sanitize_title()
函数来获取标签名称的默认别名,然后将其与标签的实际别名进行比较,如果二者不同,则使用实际别名,否则使用标签 ID。
注意:如果你更改了标签的别名,则需要重新保存固定链接才能生效。
/* WordPress文章标签以id方式展示 /* 默认以ID展示,如果修改过别名,就以修改过的别名展示 /* 文章来源:https://wpriji.com/m/20200484.html /*--------------------------------------------------------------------------------------*/ 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+)/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]', 'tag/([^/]+)/?$' => 'index.php?tag=$matches[1]', ); $wp_rewrite->rules = $new_rules + $wp_rewrite->rules; } function tag_term_link($link, $term, $taxonomy) { if ($taxonomy == 'post_tag') { $slug = $term->slug; $default_slug = sanitize_title($term->name); $identifier = ($slug === $default_slug) ? $term->term_id : $slug; return home_url('/tag/' . $identifier . '/'); } return $link; } function tag_query_vars($public_query_vars) { $public_query_vars[] = 'tag_id'; return $public_query_vars; }
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END