WP bit.ly给文章加上带自定义source的短链接

当前版本的WordPress有短链接功能,在每个页面的head信息里也有那么一行短链接

1
<link rel='shortlink' href='http://s.xfeng.me/qciLF8' />

当然默认的一般为yourdomain/?p=*,很不喜欢这样的链接,特别是带有?的

想到用自定义的短链接替换,之前用过yourls、urlshort,不过现在bit.ly解封了,并且pro服务也免费了

因此我选了bit.ly绑定域名做短链接,而bit.ly的wp插件也非常多,在我的demo wp上试了好几个插件后选择中了WP bit.ly

不过之前用了一个Bit.ly Linker,这个插件有个功能就是在生成你文章地址短链接时能加上utm_source、utm_medium、utm_campaign信息

这样如果别人是通过这些短链接进入的,在Google Analytics里可以查看到你对应设置的source的流量


虽说是个很蛋疼的功能,不过一旦用了就觉得蛮喜欢的,不过Bit.ly Linker其他功能不满足需求,只是能生成链接,而不替换系统默认的短链接,而且只能在发布时生成,如果一发布的文章你只能蛋疼的去重新更新下才会生成短链接

所以最后选了WP bit.ly,但是这个软件又不会添加utm_source、utm_medium、utm_campaign信息,只能自己折腾下了

看了插件源码,文件非常多,不过其实要改的地方也就一处,也就是生成链接时获取原始链接的地方,把那个链接后面追加上source信息就行

修改/wp-content/plugins/wp-bitly/wp-bitly.php

1
$permalink = get_permalink( $post_id );

改为下面代码,具体的source你可以自己定义名字,因为我的短链域名是s.xfeng.me

1
$permalink = get_permalink( $post_id ).'?utm_source=s.xfeng.me&utm_medium=linker&utm_campaign=myblog_link';

OK,只需要改那么一行地方,搞定后启用插件,等待他自动生成所有文章的短链接把

链接生成了,当然还要显示,我自己是懒人,在文章底部显示版权信息用了个插件,当然这个软件还能用来加广告或者分享工具的代码

我使用Add Post URL插件,这里也只说明下这个插件怎么显示短链接

修改/wp-content/plugins/wp-posturl/wp-posturl.php

1
2
function wp_posturl($text) {
$posturl_options = get_option('posturl_options');

在这里新增全局变量post

1
2
3
function wp_posturl($text) {
global $post;
$posturl_options = get_option('posturl_options');

然后增加短链接获取函数

1
2
3
4
5
6
7
8
9
if (!empty($footer_text))
{
$footer_text = str_replace("%site_url%", site_url('/'), $footer_text);
$footer_text = str_replace("%site_name%", get_bloginfo('sitename'), $footer_text);
$footer_text = str_replace("%post_url%", get_permalink(), $footer_text);
$footer_text = str_replace("%post_title%", the_title('', '', false), $footer_text);
$footer_text = stripslashes($footer_text);
$text .= $footer_text;
}

增加一行shorturl的获取

1
2
3
4
5
6
7
8
9
10
if (!empty($footer_text))
{
$footer_text = str_replace("%site_url%", site_url('/'), $footer_text);
$footer_text = str_replace("%site_name%", get_bloginfo('sitename'), $footer_text);
$footer_text = str_replace("%post_url%", get_permalink(), $footer_text);
$footer_text = str_replace("%post_title%", the_title('', '', false), $footer_text);
$footer_text = str_replace("%post_shorturl%", get_post_meta( $post->ID, '_wpbitly', true ), $footer_text);
$footer_text = stripslashes($footer_text);
$text .= $footer_text;
}

搞定,如果你要完美点,还需要习惯地方,让配置后台也会显示shorturl的使用说明,不过我觉得没必要,自己知道有这个东西就行

在你的配置里要显示短链接的地方加上%%post_shorturl%%就行,效果就见我文章末的版权说明就行

声明: 除非注明,小峰网络遨游记文章均为原创,转载请以链接形式标明本文地址

本博客原创文字只代表本人某一时间内的观点或结论,与本人所在公司没有任何关系。

本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。

第三方若用于商业用途的转载,须取得本人授权。

本文作者:

本文地址:http://xfeng.me/wp-bitly-add-utm-source-short-links/

你可能还对下面文章感兴趣: