给WordPress博客加上腾讯微博“一键转播”

一键转播

将转发按钮嵌入到网站里,网站访客点击按钮就能将网页名称+网址+指定图片,转发到腾讯微博,分享给他们的听众,增加网站的访问流量。

效果如本博。

这里说明下,“一键转播” 属于 微博组件 中的“网站主”一类的,需要先注册为开发者方可使用(注册很简单,填写一下信息就OK了)。
然后到这里填写一下网站资料获取代码。
可以点击压缩代码以减少js代码体积。

完了之后在你的当前使用的主题适当的地方加上获取的代码中的Html代码,如:
[cc lang="html"]
转播到腾讯微博 转播到腾讯微博

再把javascript代码copy到footer.php 文件中,如:

1
2
3
4
5
<?php if( is_singular() ):?>       
    <script>
    //这里是你获取到的js代码
    </script>
<?php endif;?>

默认的js(选中q-share以后),会弹出烦人的按钮,如果不选择q-share的话,网页中的图片又不会自动分享,因此,拿它的代码稍微修改了下:
注意将其中的

1
var _appkey = "xxxxxxxx" || "oooooooo"; //你从腾讯微博开放平台获得的appkey

share_btn_1329282856369 换为你自己的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<img src="http://v.t.qq.com/share/images/s/weiboicon24.png" border="0" alt="转播到腾讯微博" valign="middle"> <a href="javascript:;" class="tmblog" id="share_btn_1329301790905" style="height:16px;font-size:12px;line-height:16px;">转播到腾讯微博</a>

<script>
var _share_tencent_weibo = function() {
    String.prototype.elength = function() {
        return this.replace(/[^\u0000-\u00ff]/g, "aa").length;
    };
    String.prototype.tripurl = function() {
        return this.replace(new RegExp("((news|telnet|nttp|file|http|ftp|https)://){1}(([-A-Za-z0-9]+(\\.[-A-Za-z0-9]+)*(\\.[-A-Za-z]{2,5}))|([0-9]{1,3}(\\.[0-9]{1,3}){3}))(:[0-9]*)?(/[-A-Za-z0-9_\\$\\.\\+\\!\\*\\(\\),;:@&#038;=\\?/~\\#\\%]*)*", "gi"), new Array(12).join("aa"));
    };
    if ( !! window.find) {
        HTMLElement.prototype.contains = function(B) {
            return this.compareDocumentPosition(B) - 19 > 0
        }
    };
    var _appkey = "xxxxxxxx" || "oooooooo"; //你从腾讯微博开放平台获得的appkey
    var _web = {
        "name": document.title || "",
        "href": location.href.replace(/([^\x00-\xff]+)/g,encodeURIComponent("$1")),
        "hash": location.hash,
        "target": "toolbar=0,status=0,resizable=1,width=630,height=530"
    };
    var _pic = function(area) {
        var _imgarr = area.getElementsByTagName("img");
        var _srcarr = [];
        for (var i = 0; i < _imgarr.length; i++) {
            if (_imgarr[i].width < 50 || _imgarr[i].height < 50) {
                continue;
            }
            _srcarr.push(encodeURIComponent(_imgarr[i].src));
        }
        return _srcarr.join("|");
    };
    var _text = function() {
        var s1 = arguments[0] || "",
        s2 = Array().slice.call(arguments, 1).join(" ").replace(/[\s\n]+/g, " "),
        k = 257 - s1.tripurl().elength();
        var s = s2.slice(0, (k - 4) >> 1);
        if (s2.elength() > k) {
            k = k - 3;
            for (var i = k >> 1; i <= k; i++) {
                if ((s2.slice(0, i)).tripurl().elength() >= k) {
                    break;
                }
                else {
                    s = s2.slice(0, i);
                }
            }
            s += "...";
        } else {
            s = s2;
        }
        return [s1, s];
    };
    var _u = "http://share.v.t.qq.com/index.php?c=share&#038;a=index&#038;f=q2&#038;url=$url$&#038;appkey=" + _appkey + "&#038;assname=hacklog&#038;title=$title$&#038;pic=$pic$";

var share_area = function() {
            return [document.body];
    } ();
    var current_area = share_area[0];
    var share_btn = function(_arr) {
        if (_arr[2]) {
            _arr[2].onclick = function() {
                window.open(_u.replace("$title$", encodeURIComponent(_text(_web.name,"").join(" "))).replace("$url$", encodeURIComponent(_web.href)).replace("$pic$", _pic(share_area[0])).substr(0, 2048), 'null', _web.target);
            }
        } else {
            return null;
        }
    } (arguments);

};
_share_tencent_weibo(null,null,document.getElementById("share_btn_1329282856369"));
/*
share_btn:一键转播功能按钮,点击后将会弹出转播页面
*/

</script>

OK,完工。

更多
8 Responses Post a comment
  1. Demon

    国内的微博都没用的。说。

  2. 荒野无灯

    @Louis Han
    我知道很多人在用新浪微博,此前我本人也一直不怎么用腾讯微博,不过近来腾讯微博的“体验版”界面非常清爽干净,我觉得使用人数还是会有一些的。现在我已经由sina微博转战腾讯微博了 :twisted: 。

Leave a Reply

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS