导航菜单
路很长,又很短
博主信息
昵   称:Cocodroid ->关于我
Q     Q:2531075716
博文数:337
阅读量:1472513
访问量:166454
至今:
×
云标签 标签球>>
云标签 - Su的技术博客
博文->>首页 博主的更多博文>>
WordPress发布文章自动同步到新浪微博(图片)
Tags : WordPress,新浪微博发表时间: 2015-06-19 21:40:55
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。
比如: 转自:Su的技术博客  原文地址:

    使用WordPress作为网站的支撑,我们需要进行修改从而适应我们的需求。当我们想要发表文章后顺便在微博发表相应的内容,这样将促进我们网站的流量,虽然现在有相关插件,但是还是会增加一些我们不想要的功能,而且也给服务器造成一定的压力。

    这个时候我们就需要增加相应的代码来达到我们的需求。

    实现WordPress发布文章后自动发布微博,并且带上图片,这个功能确实是我们目前很需要的,减轻我们手工去做。需要达到这些条件:

    条件1:微博接入WEB网站

    条件2:申请高级写入接口(图片)

    条件3:在主题下functions函数添加如下代码。

    完成!


function post_to_sina_weibo($post_ID) {
   /* 鉴于很多朋友反馈发布文章空白,临时加上调试代码,若无问题可删除此行,若有问题请将错误信息在本文留言即可 */
   ini_set('display_errors', true);

   /* 此处修改为通过文章自定义栏目来判断是否同步 */
   if(get_post_meta($post_ID,'weibo_sync',true) == 1) return;

   $get_post_info = get_post($post_ID);
   $get_post_centent = get_post($post_ID)->post_content;
   $get_post_title = get_post($post_ID)->post_title;
   if ($get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish') {
     $appkey='1034947262';  /* 此处是你的新浪微博appkey,不修改的话就会显示来自张戈博客哦! */
     $username='微博用户名';
     $userpassword='微博密码';
     $request = new WP_Http;
     
     /* 获取文章标签关键词 */
     $keywords = ""; 
     $tags = wp_get_post_tags($post_ID);
     foreach ($tags as $tag ) {
        $keywords = $keywords.'#'.$tag->name."#";
     }
     /* 修改了下风格,并添加文章关键词作为微博话题,提高与其他相关微博的关联率 */
     $string1 = '【文章发布】' . strip_tags( $get_post_title ).':';
     $string2 = $keywords.' 查看全文:'.get_permalink($post_ID);

     /* 微博字数控制,避免超标同步失败 */
     $wb_num = (138 - WeiboLength($string1.$string2))*2;
     $status = $string1.mb_strimwidth(strip_tags( apply_filters('the_content', $get_post_centent)),0, $wb_num,'...').$string2;

     $api_url = 'https://api.weibo.com/2/statuses/update.json';
     $body = array('status' => $status,'source' => $appkey);
     $headers = array('Authorization' => 'Basic ' . base64_encode("$username:$userpassword"));
     $result = $request->post($api_url, array('body' => $body,'headers' => $headers));

     /* 若同步成功,则给新增自定义栏目weibo_sync,避免以后更新文章重复同步 */
     add_post_meta($post_ID, 'weibo_sync', 1, true);
   }
}
add_action('publish_post', 'post_to_sina_weibo', 0);

/*
//获取微博字符长度函数 
*/
function WeiboLength($str)
{
    $arr = arr_split_zh($str);   //先将字符串分割到数组中
    foreach ($arr as $v){
        $temp = ord($v);        //转换为ASCII码
        if ($temp > 0 && $temp < 127) {
            $len = $len+0.5;
        }else{
            $len ++;
        }
    }
    return ceil($len);        //加一取整
}
/*
//拆分字符串函数,只支持 gb2312编码  
//参考:http://u-czh.iteye.com/blog/1565858
*/
function arr_split_zh($tempaddtext){
    $tempaddtext = iconv("UTF-8", "GBK//IGNORE", $tempaddtext);
    $cind = 0;
    $arr_cont=array();
    for($i=0;$i<strlen($tempaddtext);$i++)
    {
        if(strlen(substr($tempaddtext,$cind,1)) > 0){
            if(ord(substr($tempaddtext,$cind,1)) < 0xA1 ){ //如果为英文则取1个字节
                array_push($arr_cont,substr($tempaddtext,$cind,1));
                $cind++;
            }else{
                array_push($arr_cont,substr($tempaddtext,$cind,2));
                $cind+=2;
            }
        }
    }
    foreach ($arr_cont as &$row)
    {
        $row=iconv("gb2312","UTF-8",$row);
    }
    return $arr_cont;
}


参考:

        张戈博客http://zhangge.net/4947.html

        资源部落http://www.freehao123.com/wordpress-weibo-weixin/




打赏
打赏
关注公众号
公众号
类别:网站| 阅读(1633)| 赞 (0)
评论
暂无评论!
发表评论
昵  称:

验证码:

内  容:

    同时赞一个 赞