Utm参数杀死了我们的分页

时间:2017-01-21 00:05:51

标签: javascript regex wordpress

我们运行一个WP站点,目前我们的页脚中有一个脚本,它传递一个UTM参数。

var querystring = '?utm_source=[utm_source]&utm_medium=[utm_medium]&utm_campaign=[utm_campaign]&cb=[cb]';

var UTm = '[utm_source]';

if(UTm != null && UTm !=''){
jQuery('a:not(".page-submenu li a")').each(function() {
    var href = jQuery(this).attr('href');

    if (href) {
        href += (href.match(/\?/) ? '&' : '') + querystring;


        jQuery(this).attr('href', href);
    }
});
}

不幸的是,这会破坏我们博客的分页,使得页面之间的网址来自 homesite.com/blog/page/3

霍姆斯特/博客/`utm_source = Facebook和安培; utm_medium =社会&安培; utm_campaign =博文+%5D%5D&安培; CB#038; utm_medium =社会&安培; utm_campaign =博文+%5D%5D&安培; cbpage / 33 /

这会抛出语法错误,无法识别的表达式:

此时我对如何处理此问题的建议非常开放。

1 个答案:

答案 0 :(得分:1)

如果您的分页是从href生成location.href并且只是将page/3添加到结尾,那么这将解释homesite/blog/?[querystring]page/3

以下代码会删除每个锚点?href之后的所有内容,然后重新添加page/[num]/querystring

$('a:not(".page-submenu li a")').each(function() {
    var href = $(this).attr('href');
    if (href) {
        var base = href.split('?')[0];
        base += href.match(/page\/\d/g)[0];
        $(this).attr('href', base + querystring);
    }
});