国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

wordpress引流教程,發布文章后自動同步圖文到新浪微博

2024-04-25 20:38:35
字體:
來源:轉載
供稿:網友

經常上新浪微博并且關注了不少官網認證號的小伙伴一定會發現很多官方性質的微博都會把網站的最新文章或者動態同步到新浪微博這樣一來就可以讓微博用戶快速 的了解到網站的最新動態,并且也為網站增加了一個曝光以及流量入口,對于更新頻繁的網站來說增加一個同步網站動態到微博的功能是非常有必要的,也不扯淡 了,直接上代碼:

class sync_sina {

public $access_token = "";//access_token

public $default_image = "";//默認圖片地址

public $host = "https://api.weibo.com/2/";

public static $boundary = '';

function __construct(){

/**

** 事件綁定

**/

add_action('publish_post', array($this, 'new_post_photo'));

}

function do_mu_post($url, $data) {

$ch = curl_init ();

$headers = array("Content-Type:multipart/form-data;boundary=". self::$boundary);

$ch = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, TRUE );

curl_setopt ( $ch, CURLOPT_POST, TRUE );

curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );

curl_setopt ( $ch, CURLOPT_URL, $url );

curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, FALSE);

$ret = curl_exec ( $ch );

curl_close ( $ch );

return $ret;

}

function build_http_query_multi($params) {

if (!$params) return '';

uksort($params, 'strcmp');

$pairs = array();

self::$boundary = $boundary = uniqid('------------------');

$MPboundary = '--'.$boundary;

$endMPboundary = $MPboundary. '--';

$multipartbody = '';

foreach ($params as $parameter => $value) {

if( in_array($parameter, array('pic', 'image')) && $value{0} == '@' ) {

$url = ltrim( $value, '@' );

$content = file_get_contents( $url );

$array = explode( '?', basename( $url ) );

$filename = $array[0];

$multipartbody .= $MPboundary . "/r/n";

$multipartbody .= 'Content-Disposition: form-data; name="' . $parameter . '"; filename="' . $filename . '"'. "/r/n";

$multipartbody .= "Content-Type: image/unknown/r/n/r/n";

$multipartbody .= $content. "/r/n";

} else {

$multipartbody .= $MPboundary . "/r/n";

$multipartbody .= 'content-disposition: form-data; name="' . $parameter . "/"/r/n/r/n";

$multipartbody .= $value."/r/n";

}

}

$multipartbody .= $endMPboundary;

return $multipartbody;

}

function get_image($post_id){

if( has_post_thumbnail($post_id) ){

$timthumb_src = wp_get_attachment_image_src(get_post_thumbnail_id($post_id),'full');

$output = $timthumb_src[0];

} else {

$content = get_post_field('post_content', $post_id);

$defaltthubmnail = $this->default_image;

preg_match_all('/<img.*?(?: |//t|//r|//n)?src=[/'"]?(.+?)[/'"]?(?:(?: |//t|//r|//n)+.*?)?>/sim', $content, $strResult, PREG_PATTERN_ORDER);

$n = count($strResult[1]);

if($n > 0){

$output = $strResult[1][0];

} else {

$output = $defaltthubmnail;

}

}

return $output;

}

function new_post_photo($post) {

global $post;

if( $post->post_status != "publish" ){

$token = $this->access_token;

$url = $this->host ."statuses/upload.json";

$status = "我剛剛發布了新文章《".get_the_title()."》。".get_permalink();

$status .= mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0,180,"..."); //順手加了個文章摘要,不喜歡就去掉啦

$pic_path = self::get_image($post->ID);

$params = array();

$params['access_token'] = $token;

$params['status'] = $status;

$params['pic'] = '@'.$pic_path;

$body = self::build_http_query_multi($params);

$result = self::do_mu_post($url,$body);

}

}

}

$HMT = new sync_sina();

以上代碼添加至主題functions.php文件即可。

注意:

需要服務器支持file_get_contents函數以及curl組件;

如果網站在國外服務器或者服務因特殊原因屏蔽了api.weibo.com域名,則可能造成發布文章卡死或者超時的問題。

如果網站未通過新浪審核微博小尾巴會顯示為未審核應用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和田市| 澄江县| 天等县| 南郑县| 宜章县| 莎车县| 徐汇区| 双桥区| 冕宁县| 三江| 呼图壁县| 科技| 社旗县| 化州市| 格尔木市| 万全县| 抚远县| 莱西市| 饶平县| 环江| 瑞金市| 江源县| 海安县| 宜君县| 红桥区| 乐至县| 云霄县| 收藏| 兴山县| 砚山县| 景泰县| 百色市| 雷波县| 察哈| 临武县| 密云县| 凤山县| 克拉玛依市| 石渠县| 讷河市| 林芝县|