使微博通WordPress插件可以同步特色图片

微博通官网: wbto.cn

参考API: http://www.wbto.cn/wiki/index.php/发布图片微博

从论坛下载他们的 插件文件: wbto.php,只同步文字版,不能同步特色图片,所以去看了下他们的api,研究了下源码,改一下就好了(说起来容易,研究了半天呢)

主要修改一处,添加两行代码:

//找到源码中的这几行

$fields['content'] = urlencode($posted->post_title.'::'.mb_strimwidth(strip_tags($excerpt),0,150,'...').$posted->guid);

//添加这两行代码,目的是获取到特色图片src
$imgThumb = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'post-thumbnail' );
$fields['imgurl'] = $imgThumb[0];

$ch = curl_init();
//修改一处,这里的url修改为upload.json,而不是原来的update.json
curl_setopt($ch, CURLOPT_URL, "http://wbto.cn/api/upload.json");
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");

修改完,就ok了,至少偶的是ok了。

插件就一个文件wbto.php,修改后全文代码如下:

<?php
/*
Plugin Name: 微博通同步发布
Plugin URI: http://www.wbto.cn
Description: 自动把你的博客文章同步到微博通,微博通将同步至你所绑定的各个平台。
Version: 1.0
Author: yige <abcwuwuwu@qq.com>
Author URI: http://t.qq.com/abcwuwuwu

Date: 2011年3月17日 23:07:30
发微薄三种方式:文章自定义域weibo,文章摘要,文章内容前70个字
*/
function send_to_wbto($post_ID) {
	$username = get_option('wbto_username');
	$password = get_option('wbto_password');
	$posted = get_post($post_ID);

	$fields = array();
	$excerpt=stripslashes(get_option('weibo'));
	if(!$excerpt)
		//$excerpt=get_the_excerpt($post_ID);
		$excerpt=$posted->post_excerpt;
	if(!$excerpt)$excerpt=mb_strimwidth(strip_tags($posted->post_content),0,150,'...');
	$fields['source'] = 'wordpress';
	$fields['content'] = urlencode($posted->post_title.'::'.mb_strimwidth(strip_tags($excerpt),0,150,'...').$posted->guid);
    //不知道能否获取到图片。。。。
    $imgThumb = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'post-thumbnail' );
	$fields['imgurl'] = $imgThumb[0];

	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, "http://wbto.cn/api/upload.json");
	curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
	curl_setopt($ch, CURLOPT_FAILONERROR, TRUE);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER,TRUE);
	curl_setopt($ch, CURLOPT_TIMEOUT, 10);
	curl_setopt($ch, CURLOPT_POST, TRUE);
	curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
	$result = curl_exec($ch);
	curl_close($ch);  
}
function wbto_menu() {
  add_options_page('微博通同步设置', '微博通同步', 8, __FILE__, 'wbto_options');
}

function wbto_options() {
	echo '<div class="wrap">';
	echo '<h2>微博通同步</h2>';

	echo '<form method="post" action="options.php">';
	echo wp_nonce_field('update-options');

	echo '<table class="form-table">';

	echo '<tr valign="top">';
	echo '<th scope="row">用户名 <a href="http://www.wbto.cn/?app=wp">注册</a></th>';
	echo '<td><input type="text" name="wbto_username" value="'.get_option('wbto_username').'" /></td>';
	echo '</tr>';

	echo '<tr valign="top">';
	echo '<th scope="row">密码</th>';
	echo '<td><input type="password" name="wbto_password" value="'.get_option('wbto_password').'" /></td>';
	echo '</tr>';

	echo '</table>';

	echo '<input type="hidden" name="action" value="update" />';
	echo '<input type="hidden" name="page_options" value="wbto_username,wbto_password" />';

	echo '<p class="submit">';
	echo '<input type="submit" name="submit" id="submit" class="button-primary" value="保存更改" />';
	echo '</p>';

	echo '</form>';
	echo '</div>';
}
function if_send_weibo($post_ID){
	$wbto = get_post_meta($post_ID, 'wbto', true);
	if($wbto) return;
	send_to_wbto($post_ID);
	add_post_meta($post_ID, 'wbto', '本条微博已经同步到微博通,如果你要更新微博,可以删除本定义栏目,重新撰写weibo栏目,然后更新文章即可。', true);
}
add_action('admin_menu', 'wbto_menu');
add_action('publish_post', 'if_send_weibo');
?>

http://cssor.com/wbto-wordpress-upload-image.html

参与评论

电子邮件地址不会被公开。 必填项已用*标注

*

全部分类
Books(4)code(7)database(6)html&css(24)java(11)JavaScript(48)jQuery(24)linux(20)python(1)React(1)share(1)soft(4)solution(53)thinking(17)vim(9)WordPress(8)前端优化(12)拓展(33)服务器(32)移动开发(4)自然(22)