wordpress引流教程,发布文章后自动同步图文到新浪微博

常常上微博而且关心了许多官方认证号的朋友们一定会发觉许多官方网特性的新浪微博都是会把网址的热门文章或是动态性同歩到微博这样一来就可以让微博用户迅速 的认识到站点的最新资讯,而且也为网址添加了一个曝出及其总流量通道,针对升级多次的网址而言提升一个同歩网址动态性到新浪微博的功用是十分需要的,都不胡扯 了,立即上编码:

  1. class sync_sina {
  2.     public $access_token = “”;//access_token
  3.     public $default_image = “”;//默认图片详细地址
  4.     public $host = “https://api.weibo.com/2/”;
  5.     public static $boundary = ;
  6.     function ._construct(){
  7.         /**
  8.          ** 事情关联
  9.          **/
  10.         add_action(‘publish_post’, array($this, ‘new_post_photo’));
  11.     }
  12.     function do_mu_post($url$data) {
  13.         $ch = curl_init ();
  14.         $headers = array(“Content-Type:multipart/form-data;boundary=”. self::$boundary);
  15.         $ch = curl_init();
  16.         curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  17.         curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, TRUE );
  18.         curl_setopt ( $ch, CURLOPT_POST, TRUE );
  19.         curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
  20.         curl_setopt ( $ch, CURLOPT_URL, $url );
  21.         curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  22.         $ret = curl_exec ( $ch );
  23.         curl_close ( $ch );
  24.         return $ret;
  25.     }
  26.     function build_http_query_multi($params) {
  27.         if (!$paramsreturn ;
  28.         uksort($params, ‘strcmp‘);
  29.         $pairs = array();
  30.         self::$boundary = $boundary = uniqid(‘——————‘);
  31.         $MPboundary = ‘–‘.$boundary;
  32.         $endMPboundary = $MPboundary. ‘–‘;
  33.         $multipartbody = ;
  34.         foreach ($params as $parameter => $value) {
  35.             if( in_array($parameterarray(‘pic’, ‘image’)) && $value{0} == ‘@’ ) {
  36.                 $url = ltrim( $value, ‘@’ );
  37.                 $content = file_get_contents$url );
  38.                 $array = explode( ‘?’, basename$url ) );
  39.                 $filename = $array[0];
  40.                 $multipartbody .= $MPboundary . “rn”;
  41.                 $multipartbody .= ‘Content-Disposition: form-data; name=“‘ . $parameter . ‘”; filename=“‘ . $filename . ‘”‘. “rn”;
  42.                 $multipartbody .= “Content-Type: image/unknownrnrn”;
  43.                 $multipartbody .= $content“rn”;
  44.             } else {
  45.                 $multipartbody .= $MPboundary . “rn”;
  46.                 $multipartbody .= ‘content-disposition: form-data; name=“‘ . $parameter . ““rnrn”;
  47.                 $multipartbody .= $value.“rn”;
  48.             }
  49.         }
  50.         $multipartbody .= $endMPboundary;
  51.         return $multipartbody;
  52.     }
  53.     function get_image($post_id){
  54.         if( has_post_thumbnail($post_id) ){
  55.             $timthumb_src = wp_get_attachment_image_src(get_post_thumbnail_id($post_id),’full’);
  56.             $output = $timthumb_src[0];
  57.         } else {
  58.             $content = get_post_field(‘post_content’, $post_id);
  59.             $defaltthubmnail = $this->default_image;
  60.             preg_match_all(‘/<img.*?(?: |\t|\r|\n)?src=[‘“]?(. ?)[‘”]?(?:(?: |\t|\r|\n) .*?)?>/sim’, $content$strResult, PREG_PATTERN_ORDER);
  61.             $n = count($strResult[1]);
  62.             if($n > 0){
  63.                 $output = $strResult[1][0];
  64.             } else {
  65.                 $output = $defaltthubmnail;
  66.             }
  67.         }
  68.         return $output;
  69.     }
  70.     function new_post_photo($post) {
  71.         global $post;
  72.         if$post->post_status != “publish” ){
  73.             $token = $this->access_token;
  74.             $url = $this->host .“statuses/upload.json”;
  75.             $status = “我刚公布了新文章内容《”.get_the_title().“》。”.get_permalink();
  76.             $status .= mb_strimwidth(strip_tags(apply_filters(‘the_content’, $post->post_content)), 0,180,“…”); //随手加了个文章内容引言,不太喜欢就除掉啦
  77.             $pic_path = self::get_image($post->ID);
  78.             $params = array();
  79.             $params[‘access_token’] = $token;
  80.             $params[‘status’] = $status;
  81.             $params[‘pic’] = ‘@’.$pic_path;
  82.             $body = self::build_http_query_multi($params);
  83.             $result = self::do_mu_post($url,$body);
  84.         }
  85.     }
  86. }
  87. $HMT = new sync_sina();

以上编码加上至主题风格functions.php文件就可以。

留意:

必须网络服务器适用file_get_contents函数及其curl部件;

假如网址在海外服务器或是服务项目因独特缘故屏蔽掉api.weibo.com域名,则很有可能导致公布文章内容卡住或是中断的问题。

假如网址未根据新浪网审批微博小尾巴会展示为未审核运用。

文章内容参照:http://www.mywpku.com/wordpress-sync-sina-weibo.html

本文由网友投稿或「聚码源码网」整理自网络,如转载请注明出处:https://www.jumaniu.com/943/

本站发布的内容若侵犯到您的权益,请邮件联系 zhangqy2022#yeah.net 删除,我们将及时处理!

从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!

本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。

本站资源仅供学习和交流使用,版权归原作者所有,请在下载后24小时之内自觉删除。

若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。

常见问题
  • 本站所有资源解压密码为:www.jumaniu.com 或 www.tdji.cn
查看详情

相关文章

评论
暂无评论