wordpress 的 wp2sinablog插件
来源:互联网 发布:红蜘蛛软件怎么退出 编辑:程序博客网 时间:2024/03/29 01:29
对 wp2sinablog 插件的源码分析可得:该插件只有在新建的wordpress文章发布时在新浪博客上建立同样的内容,不会自wordpress文章更新时同步更新, 可以研究一下 WLW(window live writer)、xmlrpc 、新浪博客的api,解决该问题。
源代码内容如下:
1.class.wp2sinablog.php
<?phpfunction make_newpost($post){$title=$post->post_title;if (strlen($title)==0){$title="无题 ";}$content=$post->post_content;$sendurl=get_option('wp2sinaxsend_url');if ($sendurl==1){$content="查看原文:<a href=".get_permalink($post_ID).">".get_permalink($post_ID)."</a><br/>".$content;}elseif($sendurl==2){$content.="<br/><br/>查看原文:<a href=".get_permalink($post_ID).">".get_permalink($post_ID)."</a>";}else{if (strlen($content)==0){$content="a blank ";}}$wp2sinabloguser=get_option('wp2sinabloguser');$wp2sinablogpass=get_option('wp2sinablogpass');if (strlen($wp2sinabloguser)>4){if (strlen($wp2sinablogpass)>5){$client->debug = false; $xmlclient = "http://upload.move.blog.sina.com.cn/blog_rebuild/blog/xmlrpc.php";$client = new IXR_Client($xmlclient);$content= wp_richedit_pre($content);$content=htmlspecialchars_decode($content); $catlog=get_option('wp2sina_blog_class'); $catlog= array($catlog);$post1=array('title'=>$title,'description'=>$content,'categories'=>$catlog);$params = array(1,$wp2sinabloguser,$wp2sinablogpass,$post1,true); // Last parameter is 'true' which means post immideately, to save as draft set it as 'false'$client->query('metaWeblog.newPost', $params);$wp2sinaid=$client->getResponse();add_post_meta($post->ID,'_wp2sinaid',$wp2sinaid,true);unset($client);}}}function publish_post_2_sinablog($post_ID){$post=get_post($post_ID);$status=$post->post_status;if($post->post_type =="post"){if($status == "publish"){$wpsinaid=get_post_meta($post_ID,'_wp2sinaid',true);if (strlen($wpsinaid)<4){ make_newpost($post);} }}}?>
2.class-wp2sinablog.php
<?phpfunction make_newpost($post){$title=$post->post_title;if (strlen($title)==0){$title="无题 ";}$content=$post->post_content;$sendurl=get_option('wp2sinaxsend_url');if ($sendurl==1){$content="查看原文:<a href=".get_permalink($post->ID).">".get_permalink($post->ID)."</a><br/>".$content;}elseif($sendurl==2){$content.="<br/><br/>查看原文:<a href=".get_permalink($post->ID).">".get_permalink($post->ID)."</a>";}else{if (strlen($content)==0){$content="a blank ";}}$wp2sinabloguser=get_option('wp2sinabloguser');$wp2sinablogpass=get_option('wp2sinablogpass');if (strlen($wp2sinabloguser)>4){if (strlen($wp2sinablogpass)>5){$client->debug = false; $xmlclient = "http://upload.move.blog.sina.com.cn/blog_rebuild/blog/xmlrpc.php";$client = new IXR_Client($xmlclient);$content= wp_richedit_pre($content);$content=htmlspecialchars_decode($content); $catlog=get_option('wp2sina_blog_class'); $catlog= array($catlog);$post1=array('title'=>$title,'description'=>$content,'categories'=>$catlog);$params = array(1,$wp2sinabloguser,$wp2sinablogpass,$post1,true); // Last parameter is 'true' which means post immideately, to save as draft set it as 'false'$client->query('metaWeblog.newPost', $params);$wp2sinaid=$client->getResponse();add_post_meta($post->ID,'_wp2sinaid',$wp2sinaid,true);unset($client);}}}function publish_post_2_sinablog($post_ID){$post=get_post($post_ID);$status=$post->post_status;if($post->post_type =="post"){if($status == "publish"){$wpsinaid=get_post_meta($post_ID,'_wp2sinaid',true);if (strlen($wpsinaid)<4){ make_newpost($post);} }}}?>
3. readme.txt
=== WP2Sinablog ===Contributors: StarhaiDonate link: http://wpto.starhai.net/Tags: sinablog,wp2sinablog,新浪博客,同步发布,sina,新浪Requires at least: 2.9Tested up to: 3.2Stable tag: 2.0.1同步发表 WordPress 博客日志到 新浪博客,初次安装必须设置后才能使用。== Description ==Version 2.0.1 功能1。支持将Wordpress中文章链接发布到新浪博客,并可选原文链接显示的位置。2。不支持将Wordpress中私密(private)文章发布到新浪博客(未经严格测试)。3。解决了以往同步到新浪博客排版混乱的问题。== Installation ==1. 上传 `wp2sinablog.php` `class-wp2sinablog.php`到 `/wp-content/plugins/` 目录2. 在Wordpress后台控制面板"插件(Plugins)"菜单下激活wp2sinablog插件3. 在Wordpress后台控制面板"配置(Settings)->WP2Sinablog"菜单下设置插件的必须信息。(只有经过设置,插件才能正常使用)== Frequently Asked Questions === 1.为何保存设置后,发布文件目录设置中单选按钮没有选中 =如果你是第一次保存(或更改一个新的)新浪博客的用户名/密码,可能会出现此问题。您只需要选择类别后再按一次保存即可。= 2.为何设置用户名和密码的时候老提示新浪用户名和密码错误,而登陆新浪是没错的 =首先请检查您的输入是否正确。如输入时正确的,出现错误 `发布文件目录设置 尝试登录新浪博客失败,请检查用户名/密码是否正确! ` 可能是设置用户名时输入了中文用户名,请更换成您的新浪邮箱来填写`新浪博客的登录名`。如我的新浪博客用户名为`星海茫茫`,对应的新浪邮箱为`aofa198@sina.com`,在插件设置`新浪博客的登录名`时不能填写`星海茫茫`,应填写`aofa198@sina.com`.== Changelog === 2.0.1 =Version 2.0.1 解决了同步后的排版问题。* 不再采用Curl函数,改使用IXR函数库,更利于安装使用* 如果提示找不到class-IXR.php,请将插件第一句中`ABSPATH.'`更改为你的Wordpress安装的绝对目录。= 1.0.8 =Version 1.0.8 重新写过代码,更改了发送到新浪博客的方式* 不再采用Curl函数,改使用IXR函数库,更利于安装使用* 如果提示找不到class-IXR.php,请将插件第一句中`ABSPATH.'`更改为你的Wordpress安装的绝对目录。= 1.0.7 =Version 1.0.7 可能存在不能发送文章到新浪私密博客的问题,请慎重选择发送私密博客选项。* 修正部分主机关于curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);错误提示* 解决部分主机下 WLW 不能发布文章的问题= 1.0.6 =* 解决目录读取不全的问题* 修正部分主机wp2sinablog.php on line 109,wp2sinablog.php on line 90的错误提示* 解决部分主机下 WLW 不能发布文章的问题= 1.0.5 =为解决插件不能使用,紧急放出Beta版。Version 1.0.5并未经过严格测试,如有bug请告知。不会对博客和新浪造成损害,但可能会出现私密博客同步到新浪= 版本 1.0.4 =* 增加将Wordpress中文章的标签发布到新浪博客* 增加6个新的新浪排行榜选项,分别为星座、时尚、休闲、美食、育儿、教育= 版本 1.0.3 =* 增加将Wordpress中文章链接发布到新浪博客,并可选原文链接显示的位置= 版本 1.0.2 =* 增加将Wordpress中文章以`私密博客`方式发布到新浪博客= 版本 1.0.1 =* 在配置选项里增加服务器cURL库的判断,不满足插件运行条件,提示退出* 修正新发布文章时,WLW(Window Live Writer)错误提示== Upgrade Notice === 2.0.1 =Version 2.0.1 解决了同步后的排版问题。* 不再采用Curl函数,改使用IXR函数库,更利于安装使用* 如果提示找不到class-IXR.php,请将插件第一句中`ABSPATH.'`更改为你的Wordpress安装的绝对目录。= 1.0.8 =Version 1.0.8 重新写过代码,更改了发送到新浪博客的方式。* 不再采用Curl函数,改使用IXR函数库,更利于安装使用* 如果提示找不到class-IXR.php,请将插件第一句中`ABSPATH.'`更改为你的Wordpress安装的绝对目录。= 1.0.7 =Version 1.0.7 可能存在不能发送文章到新浪私密博客的问题,请慎重选择发送私密博客选项。* 修正部分主机关于curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);错误提示* 解决部分主机下 WLW 不能发布文章的问题= 1.0.6 =Version 1.0.6 可能存在不能发送文章到新浪私密博客的问题,请慎重选择发送私密博客选项。* 解决目录读取不全的问题* 修正部分主机wp2sinablog.php on line 109,wp2sinablog.php on line 90的错误提示* 解决部分主机下 WLW 不能发布文章的问题= 1.0.5 =为解决插件不能使用,紧急放出Beta版。Version 1.0.5并未经过严格测试,如有bug请告知。不会对博客和新浪造成损害,但可能会出现私密博客同步到新浪= 1.0.4 =* 增加将Wordpress中文章的标签发布到新浪博客* 增加6个新的新浪排行榜选项,分别为星座、时尚、休闲、美食、育儿、教育= 1.0.3 =增加将Wordpress中文章链接发布到新浪博客,并可选原文链接显示的位置= 1.0.2 =增加将Wordpress中文章以`私密博客`方式发布到新浪博客= 1.0.1 =修正新发布文章时,WLW(window live writer)错误提示,全面支持WLW(Window Live Writer)发布文章.
4. wp2sinablog.php
<?php/*Plugin Name: WP2SinablogPlugin URI: http://wpto.starhai.net/Description: 同步发表 WordPress 博客日志到 新浪博客,初次安装必须设置后才能使用。Version: 2.0.1Author: StarhaiAuthor URI: http://wpto.starhai.net/*//* Copyright 2010-2012 Starhai (email : i@starhai.net) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2.*/include_once(ABSPATH.'/wp-includes/class-IXR.php');include_once("class-wp2sinablog.php");// Hook for adding admin menusadd_action('admin_menu', 'mt_add_sinapages');add_action('publish_post', 'publish_post_2_sinablog');add_action('xmlrpc_public_post', 'publish_post_2_sinablog');//add_action('future_to_publish ','future_publish_post_2_sinablog');// action function for above hookfunction mt_add_sinapages() { //call register settings functionadd_action( 'admin_init', 'register_mysettings' );// Add a new submenu under Options: add_options_page('WP2Sinablog Options', 'WP2Sinablog', 'administrator', 'wpsinablog', 'mt_options_page');}function register_mysettings() {//register our settingsregister_setting( 'WP2Sinablog-settings-group', 'wp2sinabloguser' );register_setting( 'WP2Sinablog-settings-group', 'wp2sinablogpass' );register_setting( 'WP2Sinablog-settings-group', 'wp2sinaxsend_url' ); register_setting( 'WP2Sinablog-settings-group', 'wp2sina_blog_class' );}// mt_options_page() displays the page content for the Test Options submenufunction mt_options_page() {?><div class="wrap"><h2>WP2Sinablog 选项</h2><br />设置仅适用于新浪博客,不支持Wordpress中<b>private</b>属性的文章发布到新浪博客。<br/><br/><form method="post" action="options.php"> <?php settings_fields( 'WP2Sinablog-settings-group' ); ?> <table class="form-table"> <tr valign="top"> <th scope="row">新浪博客的登录名</th> <td><input name="wp2sinabloguser" type="text" id="wp2sinabloguser" value="<?php form_option('wp2sinabloguser'); ?>" class="regular-text" /></td></tr><tr valign="top"> <th scope="row">新浪博客的登录密码</th> <td><input name="wp2sinablogpass" type="password" id="wp2sinabloguser" value="<?php form_option('wp2sinablogpass'); ?>" class="regular-text" /></td></tr><tr valign="top"> <th scope="row">发布文件目录设置</th> <td><?php$wp2sinabloguser=get_option('wp2sinabloguser');$wp2sinablogpass=get_option('wp2sinablogpass');if (strlen($wp2sinabloguser)>3){if (strlen($wp2sinablogpass)>3){$client->debug = false; //开发测试时设置为true,api完成上线后改为false $xmlclient = "http://upload.move.blog.sina.com.cn/blog_rebuild/blog/xmlrpc.php";$client = new IXR_Client($xmlclient); $params = array(0,$wp2sinabloguser,$wp2sinablogpass); if (!$client->query("metaWeblog.getCategories", $params)) { ?> <font color="red">尝试登录新浪博客失败,请检查用户名/密码是否正确!</font></b><?php } else { $catarrays=$client->getResponse(); if (count($catarrays)>0) { foreach($catarrays as $catarray) { $catarrayid=$catarray['categoryId']; $catarrayname=$catarray['categoryName']; ?> <input name="wp2sina_blog_class" value="<?php echo $catarrayname; ?>" id="componentSelect<?php echo $catarrayid; ?>" type="radio" <?php checked($catarrayname, get_option('wp2sina_blog_class')); ?> > <label for="componentSelect<?php echo $catarrayid; ?>"><?php echo $catarrayname; ?></label><?php }}else{ echo "您的新浪博客只存在默认目录。"; } } unset($client);}}?></td></tr> <tr valign="top"> <th scope="row">原文链接设置</th> <td><input name="wp2sinaxsend_url" value="0" <?php checked(0, get_option('wp2sinaxsend_url')); ?> id="cwp2sinaxsend_url1" type="radio"><label for="cwp2sinaxsend_url1">不发送</label><input name="wp2sinaxsend_url" value="1" <?php checked(1, get_option('wp2sinaxsend_url')); ?> id="cwp2sinaxsend_url2" type="radio"><label for="cwp2sinaxsend_url2">发送(链接在文章头部)</label><input name="wp2sinaxsend_url" value="2" <?php checked(2, get_option('wp2sinaxsend_url')); ?> id="cwp2sinaxsend_url3" type="radio"><label for="cwp2sinaxsend_url3">发送(链接在文章尾部)</label></td></tr> </table> <p class="submit"> <input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" /> </p></form></div><?php}?>
0 0
- wordpress 的 wp2sinablog插件
- 整合wordpress的插件!!
- wordpress的插件机制
- 我的wordpress插件
- 晒晒老衲用的WordPress插件
- wordpress 插件的工作机制
- wordPress的15个插件
- 为WordPress的最佳插件
- WP触摸WordPress的插件
- 推荐自用的WordPress插件
- wordpress 插件的开发 入门
- 我的wordpress插件总结
- wordpress插件
- wordpress插件
- [WordPress]WordPress MU 增加SNS - BuddyPress插件的安装过程
- WordPress初级教程-15: Wordpress插件的安装和使用/ Plugins
- WordPress初级教程-18: 向新手推荐的Wordpress插件
- 整合Wordpress到Magento的插件 - Lazzymonks Wordpress Integration
- Andriod 开源项目源码解析第一期发布
- php文件缓存实例代码
- Android 系统重启与关机:Java 代码实现
- 21.23. Merge Two Sorted Lists /
- android_关于handler笔记
- wordpress 的 wp2sinablog插件
- ImageNet Classification with Deep Convolutional Neural Networks
- python查看是32位还是64位版本
- 检查列表是否为空的最好方法
- HDU 5726 GCD
- B:LINUX解析UBOOT传入参数的原理
- Sublime text2 自动补齐功能开启(jedi+sublimecodeintel)
- 让Android Support V4中的SwipeRefreshLayout支持上拉加载更多
- 392. Is Subsequence