填写您的邮件地址,订阅我们的精彩内容:

自定义栏目实现wordpress微博通同步微博

801

相信很多朋友都在使用微博通(享拍)管理自己的各个平台上的微博,享拍微博通还提供了开放API,为wordpress通过享拍微博通同步自己的各个微博提供了很大的帮助。其实在同步方面,个人更喜欢follow5的同步,因为它可以同步到更多的领域。好了,本文介绍wordpress的微博通插件,并对插件做适当修改,使微博同步更有操控性。

本文提供的插件代码具有以下功能:

1、发布文章时同时发布一条微博,格式为“《标题》可控内容…链接”;
2、可控内容指:如果你愿意,自己利用wordpress每篇文章的自定义栏目对可控内容进行编辑;如果你比较崇尚方便,可以不做任何操作,直接发布文章,插件会截取文章前80个字作为可控内容;
3、更新文章时并不会重复发布微博,而是需要删除其中的wbto自定义栏目,并且可以修改weibo自定义栏目来自定义可控内容。

你可以通过互联网获取享拍微博通(http://www.wbto.cn)原始的wordpress同步插件它只能实现发布文章时同步微博,格式为“《标题》链接”,而且这个链接可能是固定链接,因为你可能用writer等其他客户短写文章。

好了,接下来放送插件:

下载地址:http://dl.dbank.com/c07sijrbvm 下面源代码为最终版,实现了自定义微博内容,文章摘要,特色图片传送等功能

<?php
/*
Plugin Name: 微博通同步发布
Plugin URI: http://www.wbto.cn
Description: 自动把你的博客文章同步到微博通,微博通将同步至你所绑定的各个平台。
Version: 1.0
Author: frustigor <frustigor@163.com>
Author URI: http://www.utubon.com/wordpress-custom-fields-synchronize-weibo-wbto/
Date: 2011年7月11日
*/
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,’…’);
$url=$posted->guid;
if(!$url)$url=get_bloginfo(‘url’).’/?p=’.$post_ID;
$post_thumbnail_id = get_post_thumbnail_id( $post_ID );
$post_thumbnail_src = wp_get_attachment_image_src($post_thumbnail_id,’Full’);
$fields[‘source’] = ‘wordpress’;
$fields[‘content’] = urlencode($posted->post_title.’【’.$url.’】’.mb_strimwidth(strip_tags($excerpt),0,150,’…’));
$fields[‘imgurl’] = $post_thumbnail_src[0];
//详见http://www.wbto.cn/wiki/index.php/%E9%A6%96%E9%A1%B5

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, “http://wbto.cn/api/update.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>’;
echo ‘<h2>微博通同步</h2>’;

echo ‘<form method=”post” action=”options.php”>’;
echo wp_nonce_field(‘update-options’);

echo ‘<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>’;
echo ‘<input type=”submit” name=”submit” id=”submit” 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’);
?>

将上面的代码拷贝到wbto.php文件,上传到plugins目录下,进入后台设置自己在微博通的用户名密码。

如何发布微博:

1、直接发布文章;
2、不直接发布,而是设置一项自定义栏目weibo,并将你想发布的信息写入其自定义栏目值中,然后发布文章;
3、更新:更新文章时你会发现多了一项wbto的自定义栏目,这是用来标记是否已经发送过该微博的,如果不管它,直接更新文章,那么不会发送微博,如果将wbto这个自定义删除,就会再发一条微博,此时你可以修改下方的weibo自定义栏目,写更新微博的内容。<完>

下面我简单说几句