目标就如同标题如示,优化一下tag链接,也算是SEO优化的一部分吧。
代码如下:
// 1. 生成标签链接时将slug替换为MD5
add_filter('term_link', function($url, $term, $taxonomy) {
if ($taxonomy === 'post_tag') {
$md5 = md5($term->name);
// 只替换最后的slug部分
$url = preg_replace('/(\/tag\/)([^\/]+)(\/?)/', '$1' . $md5 . '$3', $url);
}
return $url;
}, 10, 3);
// 2. 解析请求时将MD5还原为真实slug
add_action('parse_request', function($wp) {
if (isset($wp->query_vars['tag'])) {
$md5 = $wp->query_vars['tag'];
// 查询所有标签
$tags = get_terms([
'taxonomy' => 'post_tag',
'hide_empty' => false,
]);
foreach ($tags as $tag) {
if (md5($tag->name) === $md5) {
// 替换为真实slug
$wp->query_vars['tag'] = $tag->slug;
break;
}
}
}
});
评论抢沙发