<!-- Baidu Button BEGIN --> <div id="bdshare" class="bdshare_t bds_tools get-codes-bdshare"> <a class="bds_qzone"></a> <a class="bds_tsina"></a> <a class="bds_tqq"></a> <a class="bds_renren"></a> <span class="bds_more">更多</span> </div> <script type="text/javascript" id="bdshare_js" data="type=tools&mini=1" ></script> <script type="text/javascript" id="bdshell_js"></script> <script type="text/javascript"> /** * 在这里定义 bds_config */ var bds_config = { 'bdDes':'您的自定义分享摘要', //'请参考自定义分享摘要' 'bdText':'您的自定义分享内容', //'请参考自定义分享内容' 'bdPopTitle':'您的自定义 pop 窗口标题', //'请参考自定义 pop 窗口标题' 'bdTop':'您的自定义侧栏高度', //'请参考自定义侧栏高度' 'bdComment':'您的自定义分享评论', //'请参考自定义分享评论' 'bdPic':'您的自定义分享出去的图片', //'请参考自定义分享出去的图片' 'searchPic':'是否自动抓取页面图片',//'0 为抓取,1 为不抓取,默认为 0,目前只针对新浪微博' 'wbUid':'您的自定义微博 ID', //'请参考自定义微博 id' 'render':false, //'请参考自定义分享回流量统计' 'review':'normal', //'请参考自定义分享回流签名' 'snsKey':{'tsina':'appkey'} //'请参考自定义分享到平台的 appkey' } document.getElementById('bdshell_js').src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000); </script> <!-- Baidu Button END -->
按照官方的办法,只要在<div>或者 javascript 里面定义一下 searchPic:0 不就可以了吗?
然后,在 修改→清缓存→没效果→修改…几轮苦逼测试后,发现依然无效,分享时还是不出现图片!
研究了下点击分享后弹出的网址内容,发现里面的 searchPic 值死活为 false:
当我将地址中的 searchPic=false 手动改成 searchPic=true 或 searchPic=0 时,图片就出来了:
但是,无论是在 div 里的 data 中定义 searchPic,还是在 javascript 中定义 searchPic,点击分享弹出的地址中,searchPic 依然为 false!真无语!
折腾了半天没搞定,正要放弃时,突然注意到官方代码中的 pic 可以定义自定义图片,于是定义了一张图片地址试了试,发现还真可以~!
既然 searchPic 不好使,那只好先用 pic 定义个特色图片凑合下咯!
下面说下给百度分享加上特色图片和摘要内容的简单的方法:
一、在 function.php 中新增如下函数(有的主题可能已存在,请自查):
/*特色图片*/ function get_post_thumbnail_url($post_id){ $post_id = ( null === $post_id ) ? get_the_ID() : $post_id; $thumbnail_id = get_post_thumbnail_id($post->ID); if($thumbnail_id ){ $thumb = wp_get_attachment_image_src($thumbnail_id, 'thumbnail'); return $thumb[0]; }else{ return false; } }
二、定义 pic 图片及 text 分享内容:
以下方法二选一即可,代码中的@张戈博客,请自行修改成相应的微博 ID,或直接使用博客名称即可:
①、如果博客用的是仿异次元的百度分享工具条,那么可以如下修改 share.php 的相应位置代码:
<!--获取文章摘要(新增)--> <?php if (!function_exists('utf8Substr')) { function utf8Substr($str, $from, $len) { return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'. '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s', '$1',$str); } } if ( is_single() ){ if ($post->post_excerpt) { $description = $post->post_excerpt; } else { if(preg_match('/<p>(.*)<\/p>/iU',trim(strip_tags($post->post_content,"<p>")),$result)){ $post_content = $result['1']; } else { $post_content_r = explode("\n",trim(strip_tags($post->post_content))); $post_content = $post_content_r['0']; } $description = utf8Substr($post_content,0,200); } } ?> <!--百度分享(修改)--> <div data="{'url':'<?php the_permalink()?>','pic':'<?php echo get_post_thumbnail_url($post->ID); ?>','text':'分享@张戈博客 的文章「<?php the_title(); ?>」:<?php echo trim($description); ?>...'}" class="bdshare_t bds_tools get-codes-bdshare stb_share_buttons stb_group" id="bdshare">
其中 2~24 行代码是新增代码,请在 share.php 中添加即可
第 21 行中可以修改内容字数,代码中默认设置为 200 个。
第 26 行是修改后的代码,在 share.php 中搜索“bdshare_t bds_tools get-codes” 找到位置后,替换整句代码即可。
②、通用方法:找到百度分享代码中的以下 javascript:
<script type="text/javascript"> document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + new Date().getHours(); </script>
替换成以下代码:
<!--获取文章摘要(新增)--> <?php if (!function_exists('utf8Substr')) { function utf8Substr($str, $from, $len) { return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'. '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s', '$1',$str); } } if ( is_single() ){ if ($post->post_excerpt) { $description = $post->post_excerpt; } else { if(preg_match('/<p>(.*)<\/p>/iU',trim(strip_tags($post->post_content,"<p>")),$result)){ $post_content = $result['1']; } else { $post_content_r = explode("\n",trim(strip_tags($post->post_content))); $post_content = $post_content_r['0']; } $description = utf8Substr($post_content,0,200); } } ?> <!--百度分享 javascript--> <script type="text/javascript"> var bds_config = { 'bdPic':'<?php echo get_post_thumbnail_url($post->ID); ?>', 'pic':'<?php echo get_post_thumbnail_url($post->ID); ?>', 'text':'分享@张戈博客 的文章「<?php the_title(); ?>」:<?php echo trim($description); ?>...' } document.getElementById('bdshell_js').src = "http://share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000); </script>
做完以上操作后,你再点击分享,应该就会有图片和内容了:
不过图片只有一张!稍有遗憾,先凑合使用吧!
后续,张戈要是找到了解决办法,会继续分享!敬请关注张戈博客最新动态!