You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需插件在WordPress网站中保留UTM参数的实现方法

自动传递UTM参数到全站链接的WordPress代码方案

下面是可直接放入主题function.php文件的代码,解决UTM参数在站内跳转时丢失的问题:

代码实现

1. 存储UTM参数到Cookie

// 存储UTM参数到Cookie
function save_utm_cookies() {
    if (isset($_GET['utm_source']) || isset($_GET['utm_medium']) || isset($_GET['utm_campaign']) || isset($_GET['utm_term']) || isset($_GET['utm_content'])) {
        $utm_params = array(
            'utm_source' => sanitize_text_field($_GET['utm_source']),
            'utm_medium' => sanitize_text_field($_GET['utm_medium']),
            'utm_campaign' => sanitize_text_field($_GET['utm_campaign']),
            'utm_term' => sanitize_text_field($_GET['utm_term']),
            'utm_content' => sanitize_text_field($_GET['utm_content'])
        );
        // 过滤空参数
        $utm_params = array_filter($utm_params);
        if (!empty($utm_params)) {
            // Cookie有效期设为7天,可自行调整(单位:秒)
            setcookie('saved_utm_params', http_build_query($utm_params), time() + 7*24*60*60, COOKIEPATH, COOKIE_DOMAIN);
        }
    }
}
add_action('init', 'save_utm_cookies');

2. 给站内链接自动添加UTM参数

// 给站内链接追加UTM参数
function add_utm_to_links($content) {
    if (!isset($_COOKIE['saved_utm_params'])) {
        return $content;
    }
    $utm_params = $_COOKIE['saved_utm_params'];
    // 替换成你的网站域名(不带http/https)
    $domain = 'example.com';
    // 匹配站内<a>标签的href属性
    $pattern = '/<a(.*?)href="https?:\/\/'.$domain.'\/([^"]*)"(.*?)>/i';
    
    $content = preg_replace_callback($pattern, function($matches) use ($utm_params) {
        $original_href = 'https://'.$domain.'/'.$matches[2];
        // 处理已有参数的链接
        if (strpos($original_href, '?') !== false) {
            $new_href = $original_href . '&' . $utm_params;
        } else {
            $new_href = $original_href . '?' . $utm_params;
        }
        // 替换原链接
        return str_replace($original_href, $new_href, $matches[0]);
    }, $content);
    
    return $content;
}
// 对文章内容、导航菜单、小工具文本里的链接生效
add_filter('the_content', 'add_utm_to_links');
add_filter('wp_nav_menu_items', 'add_utm_to_links');
add_filter('widget_text', 'add_utm_to_links');

使用说明

  • 把代码中的$domain = 'example.com';替换为你实际的网站域名。
  • Cookie有效期默认7天,可修改time() + 7*24*60*60中的数值调整(比如改成30*24*60*60就是30天)。
  • 代码会自动处理文章内容、导航菜单、小工具里的站内链接,确保UTM参数跟随跳转。

内容的提问来源于stack exchange,提问作者Naser Aslam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 08:50:42