织梦分享按钮代码添加位置

分享按钮放在哪里

织梦文章页模板分通用、图片、软件等类型,分别对应不同文件。文章分享按钮通常添加在内容结束之后、上下篇导航之前,这是用户读完文章最易产生分享行为的黄金位置。

主要模板文件路径

/templets/default/article_article.htm:普通文章模板
/templets/default/article_image.htm:图片集模板
/templets/default/article_soft.htm:软件下载模板

找到{dede:field.body/}(正文输出标签)所在位置,在其下方插入分享代码即可。

纯CSS分享按钮组

不依赖百度分享等第三方JS,用纯CSS实现分享按钮组,加载快且可控:

<div class="share-row">
 <span>分享到:</span>
 <a href="javascript:shareWx()" class="wx">微信</a>
 <a href="javascript:shareQq()" class="qq">QQ</a>
 <a href="javascript:shareWb()" class="wb">微博</a>
 <a href="javascript:copyUrl()" class="copy">复制链接</a>
</div>

各平台分享链接生成

QQ空间分享

QQ分享通过URL参数传递标题、摘要、图片:

function shareQq(){
    var url=encodeURIComponent(location.href);
    var title=encodeURIComponent(document.title);
    var desc=encodeURIComponent('{dede:field.description/}');
    var pic=encodeURIComponent('{dede:field.litpic/}');
    window.open('https://connect.qq.com/widget/shareqq/index.html?url='
        +url+'&title='+title+'&desc='+desc+'&pics='+pic);
}

新浪微博分享

function shareWb(){
    var url=encodeURIComponent(location.href);
    var title=encodeURIComponent(document.title+' {dede:field.typename/}');
    var pic=encodeURIComponent('{dede:field.litpic/}');
    window.open('https://service.weibo.com/share/share.php?url='
        +url+'&title='+title+'&pic='+pic);
}

复制链接

function copyUrl(){
    var input=document.createElement('input');
    input.value=location.href;
    document.body.appendChild(input);
    input.select();
    document.execCommand('copy');
    document.body.removeChild(input);
    alert('链接已复制');
}

微信分享特殊处理

微信内分享不能直接用URL跳转,需调用微信JS-SDK。在公众号后台配置JS接口安全域名后,引入:

<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
<script>
wx.config({
    debug:false,
    appId:'{$appId}',
    timestamp:{$timestamp},
    nonceStr:'{$nonceStr}',
    signature:'{$signature}',
    jsApiList:['onMenuShareTimeline','onMenuShareAppMessage']
});
wx.ready(function(){
    wx.onMenuShareAppMessage({
        title:document.title,
        desc:'{dede:field.description/}',
        link:location.href,
        imgUrl:'{dede:global.cfg_cmsurl/}{dede:field.litpic/}'
    });
});
</script>
微信JS-SDK签名需在后端生成,涉及access_token和jsapi_ticket的获取与缓存(7200秒有效),不可在前端直接写死。

移动端分享优化

底部悬浮分享条

移动端阅读完毕返回顶部不便,可在底部做悬浮分享条:

.share-bar{position:fixed;bottom:0;left:0;right:0;background:#fff;
  border-top:1px solid #eee;padding:10px;display:flex;justify-content:space-around;z-index:99}
@media(min-width:768px){.share-bar{display:none}}

UC/QQ浏览器唤起

部分国产浏览器支持nativeShareAPI,可直接唤起原生分享菜单:

if(nativeShare){
    nativeShare.setShareData({title:document.title,link:location.href});
    nativeShare.call();
}

常见问题

分享图片不显示

QQ/微博抓取的图片必须是公网可访问的绝对URL。织梦litpic字段是相对路径,需拼接{dede:global.cfg_cmsurl/}前缀。图片尺寸建议不小于300×300px。

分享标题乱码

必须用encodeURIComponent编码中文参数,否则在某些浏览器会乱码。模板编码与页面声明的charset需一致(建议UTF-8)。

落地行动建议

分享按钮上线后建议接入分享统计,在分享链接后附加UTM参数(如?from=qq),通过统计工具分析各平台带来的流量,针对性优化分享文案和配图。同时A/B测试按钮位置(顶部/底部/侧边悬浮),找到点击率最高的布局。