WordPress文章同步微博實現(xiàn)方法 - 無插件腳本同步微博

麥子 優(yōu)化維護141字數(shù) 2460閱讀8分12秒閱讀模式

我們有些朋友希望更新在WordPress博客的文章能夠同步到微博中。這里我們可能看到有一些插件可以實現(xiàn),這里麥子在整理電腦文檔的時候看到有這么一個腳本,應(yīng)該是之前一個網(wǎng)友給我的,可以同步到微博中。如果我們有需要可以試試。這里,麥子后面也準備試試。

我們需要先到微博中申請TOKEN:https://open.weibo.com/tools/console

然后我們將API信息修改下面的腳本,然后添加到我們的主題 Functions.php 文件中。

//同步微博 zhujipingjia.com 收藏
add_action('publish_post', 'new_post_weibo', 1);
function new_post_weibo($post_ID, $debug = false) {
global $post;
if (!wp_is_post_revision($post_ID) && $post->post_status != "publish" || $debug == true){
if (isset($post) && $post->post_type != "post") return;
$access_token = "2.00xxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$headers = array();
$headers[] = "Authorization: OAuth2 ".$access_token;
$url = 'https://api.weibo.com/2/statuses/share.json';
$status = "WordPress建站筆記更新《".strip_tags( $_POST['post_title'] ) .'》'.mb_strimwidth(strip_tags(apply_filters('the_content',$_POST['post_content'])),0,85,".")."(文章原文來自cnwper.com)→".get_permalink($post_ID);
if (has_post_thumbnail()) {
$post_thumbnail_id = wp_get_attachment_scr(get_post_thumbnail_id($post->ID));
$img_src = $post_thumbnail_id;
}else{
$img_src= '';
$content = get_post( $post_ID )->post_content;
preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $content, $strResult);

$img_src = $strResult [1] [0];
}

if(!empty($img_src)) {
$picfile = str_replace(home_url(),$_SERVER["DOCUMENT_ROOT"],$img_src);
if(!empty($picfile)){
$filecontent = file_get_contents($picfile);
}else{
$filecontent = file_get_contents($img_src);
}
$array = explode('?', basename($img_src));
$filename = $array[0];
$boundary = uniqid('------------------');
$MPboundary = '--'.$boundary;
$endMPboundary = $MPboundary. '--';
$multipartbody = '';
$multipartbody .= $MPboundary . "\r\n";
$multipartbody .= 'Content-Disposition: form-data; name="pic"; filename="' . $filename . '"' . "\r\n";
$multipartbody .= "Content-Type: image/unknown\r\n\r\n";
$multipartbody .= $filecontent. "\r\n";
$multipartbody .= $MPboundary . "\r\n";
$multipartbody .= 'content-disposition: form-data; name="status' . "\"\r\n\r\n";
$multipartbody .= urlencode($status)."\r\n";
$multipartbody .= $endMPboundary;
$headers[] = "Content-Type: multipart/form-data; boundary=" . $boundary;
$data = $multipartbody;
}else{
$data = "status=" . urlencode($status);
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$curlResponse = curl_exec($ch);
curl_close($ch);
$output = json_decode($curlResponse);
if($debug){
var_dump($output);
echo '<hr />';
var_dump($data);
}
}
}

我們可以試試是否同步,正常是會同步摘要、連接和圖片的。

投上你的一票
 
  • 本文由 麥子 發(fā)表于 2024年10月17日 09:18:00
  • 轉(zhuǎn)載請務(wù)必保留本文鏈接:http://bjj.org.cn/wptowb.html
  • WordPress同步微博