飞流 发表于 2025-10-10 16:57:08

子比主题 – 修改Tag标签固定链接

对于子比站长很多人写了tag标签的时候会有的时候出现中文的标签,那么他对网站是不是很友好的,所以这里是一键修改Tag标签链接,可以将标签换成html格式,喜欢的自行部署!





更新日志

[*]修复标签页面翻页为404页面

代码部署


定位:/wp-content/themes/zibll/func.php文件,没有这个文件自己创一个,记得加上php头,要不然报错,将下面的代码放里面即可,放了之后记得去:WP后台–>>设置–>>固定链接–>>保存设置一下
// 修改标签链接结构
function modify_tag_link($link, $term, $taxonomy) {
    if ($taxonomy === 'post_tag') {
      return home_url('/tag/' . $term->term_id . '.html');
    }
    return $link;
}
add_filter('term_link', 'modify_tag_link', 10, 3);

// 添加重写规则
function add_tag_rewrite_rules() {
    // 基本标签页面的重写规则
    add_rewrite_rule(
      'tag/(+)\.html$',
      'index.php?tag_id=$matches',
      'top'
    );

    // 标签分页的重写规则
    add_rewrite_rule(
      'tag/(+)\.html/page/(+)/?$',
      'index.php?tag_id=$matches&paged=$matches',
      'top'
    );
}
add_action('init', 'add_tag_rewrite_rules');

// 确保 'tag_id' 被注册为查询变量
function add_query_vars_filter($vars){
$vars[] = "tag_id";
$vars[] = "paged";
return $vars;
}
add_filter('query_vars', 'add_query_vars_filter');


// 查询变量添加 tag_id
function add_tag_query_vars($vars) {
    $vars[] = 'tag_id';
    return $vars;
}
add_filter('query_vars', 'add_tag_query_vars');

// 根据 tag_id 修改查询
function modify_tag_query($query) {
    if (!is_admin() && $query->is_main_query()) {
      $tag_id = get_query_var('tag_id');
      if ($tag_id) {
            $term = get_term($tag_id, 'post_tag');
            if ($term && !is_wp_error($term)) {
                $query->set('tag', $term->slug);
            }
      }
    }
}
add_action('pre_get_posts', 'modify_tag_query');

页: [1]
查看完整版本: 子比主题 – 修改Tag标签固定链接