首要前提是公众号必须通过认证,否则都是空谈,以前的老方法全部都已经失效,现在必须使用JSSDK。JSSDK除了坑超级多外其实功能还是挺强大的。不得不说微信的用户数在那呢,如果真要好好做站还是需要关注下的。

可使用微信扫描下面的二维码然后发送给你的朋友或者到你的朋友圈来测试这个功能

WordPress 微信分享缩略图设置与分享次数统计

后可查看文末分享次数的变化。

下载压缩包解压,把文件上传到主题目录下,并在functions.php中引入

require get_template_directory() . '/.php';

下面的代码最好放在footer.php里,因为设计到jqeury的加载,放到最后比较好。注释写的比较清楚,示例代码是只在文章也生效,具体也可根据你的需要调整。JSSDK第一个参数位ID,第二个参数位SECRET。

也要注意ajax操作里admin-ajax.php的地址设置,缩略图请自行使用主题所带的获取缩略图函数

<?php if( is_single() ){
    $ = new JSSDK("appid", "appsecret");
    $signPackage = $jssdk->GetSignPackage();
    $title = get_the_title();//标题
    $url = get_permalink();//链接
    $image = '';//缩略图
    ?>
    <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
    <script>
        wx.config({
            debug: false,
            appId: '<?php echo $signPackage["appId"];?>',
            timestamp: <?php echo $signPackage["timestamp"];?>,
            nonceStr: '<?php echo $signPackage["nonceStr"];?>',
            signature: '<?php echo $signPackage["signature"];?>',
            jsApiList: [
                'onMenuShareTimeline','onMenuShareAppMessage'
            ]
        });
        wx.ready(function () {
            wx.onMenuShareAppMessage({
                title: '<?php echo $title;?>', // 分享标题
                desc: '神转折剧情!', // 分享描述,只要分享给朋友才需要
                link: '<?php echo $url;?>', // 分享链接
                imgUrl: '<?php echo $image; ?>', // 分享图标
                type: '', // 分享类型,music、video或link,不填默认为link
                dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
                success: function () {
                    var ajax_data = {
                        action: "wechat_share",
                        postid: <?php echo get_the_ID();?>
                    }
                    $.ajax({
                        type: "POST",
                        url: '/wp-admin/admin-ajax.php',//你的admin-ajax.php地址
                        data: ajax_data,
                        dataType: 'json',
                        success: function(data) {

                        }
                    });
                },
                cancel: function () {

                }
            });
            wx.onMenuShareTimeline({
                title: '<?php echo $title;?>', // 分享标题
                link: '<?php echo $url;?>', // 分享链接
                imgUrl: '<?php echo $image; ?>', // 分享图标
                success: function () {
                    var ajax_data = {
                        action: "wechat_share",
                        postid: <?php echo get_the_ID();?>
                    }
                    $.ajax({
                        type: "POST",
                        url: '/wp-admin/admin-ajax.php',//你的admin-ajax.php地址
                        data: ajax_data,
                        dataType: 'json',
                        success: function(data) {

                        }
                    });
                },
                cancel: function () {
                    // 用户取消分享后执行的回调函数
                }
            });
        });
    </script>
<?php }?>

添加回调函数,加到functions.php

add_action('wp_ajax_nopriv_wechat_share', 'wechat_share_callback');
add_action('wp_ajax_wechat_share', 'wechat_share_callback');
function wechat_share_callback()
{
    $postid         = $_POST["postid"];
    $post_bookmarks = get_post_meta($postid, "_wechat_share_num",true) ? ( get_post_meta($postid, "_wechat_share_num",true) + 1) : 1;
    update_post_meta($postid, "_wechat_share_num",$post_bookmarks);
    die;
}

调用分享次数

直接使用get_post_meta($post->ID, "_wechat_share_num",true)即可