学习永不停止
我们一起努力吧!

WordPress多个不同博客网站间文章同步代码+插件(分享测试效果)

阳江鼎阳抄数设计交流群

没有这方面的需要,但出于兴趣,前几天在网站管理后台试用了一下自称能实现wordpress博客间文章同步的插件:wp2wp。在WP-A博客安装完wp2wp,设置好远程端WP-B博客的地址(home_url) 、远端作者(user_login) 、远端密码(user_pass) 、远端分类名(cat_name)等信息后,简单写了一篇文章测试,当将WP-B博客刷新后发现,所发布的文章果然按分类目录发送了过来。不过,随着慢慢测试发现,当编辑同一篇文章时,wp2wp竟然会将这篇文章再次重复发布到WP-B博客中,同时还发现发送端网站在发送文章期间速度速度突然慢了下来,显然是同步过程中造成了负担过重。看看wp2wp更新的日期,插件显示是一年前发布的时间,这,应该是目前为止网上最新的一个版本了,后来在百度时发现,作者其实还有收费的订制版,再想想那款用得挺好的博客同步插件WP2Sinablog,可以看出,作者并没有技术难度,只是不愿意将公开版完善而已。个人觉得,如果没有更新版本,大家没必要浪费时间去试,除了满足好奇心,用处不大。只希望作者收费的同时,也能将免费版继续完善一下,毕竟插件里面也是可以做广告的嘛!

本人一直有通过“同步远程不同WP博客网站数据库”实现各种可能的想法,但苦于技术能力有限,只盼着哪位大神分享出好的代码和插件就省力地使用一下。这不,又在网上发现了一组挺稀缺的“同步不同wordpress博客文章”的代码,现在摘录公布出来给需要的人参考。下面说下代码及使用方法:

首先需要在主送网站根目录下新建一个“E-sync-post.php”文件,将以下这段代码加进入保存:

<?php

/*

文章发表后同步到另一个站点(接收)


*/

define('WP_USE_THEMES', false);

require_once("wp-load.php");

$key='123456789'; //设置启动API的密钥

if($_POST['key']==$key){

$categorys=explode(',',$_POST['category']);

$category=array();

for($x=1;$x<count($categorys);$x++) {

$category[$x-1]=get_cat_ID($categorys[$x]);

}

$info = array(

'post_title' => $_POST['title'],

'post_content' => $_POST['content'],

'post_status' => 'publish',

'post_author' => 1, //发布文章的作者ID,1 为管理员

'post_date' => $_POST['date'],

'tags_input' => $_POST['tags'],

'post_category' => $category,

'post_type' => $_POST['type']

);

wp_insert_post( $info );

}

?>

然后再在主送网站主题functions.php文件中加入这组代码:

/*

文章发表后同步到另一个站点(发送)


*/

add_action('publish_post', 'E_sync_post'); //钩子,在文章发布时执行

function E_sync_post($post_ID) {

$key='123456789'; //输入你设置的密钥

$url='ceshi.esdaili.net/E-sync-post.php';//API地址

$post_info = get_post($post_ID);

if ( $post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish' ) {

$title=$_POST['post_title'];

$content=$_POST['content'];

$date=$_POST['aa'].'-'.$_POST['mm'].'-'.$_POST['jj'].' '.$_POST['hh'].':'.$_POST['mn'].':'.$_POST['ss'];

$category='';

for($x=1;$x<count($_POST['post_category']);$x++) {

$category.=','.get_cat_name($_POST['post_category'][$x]);

}

$type=$_POST['post_type'];

$tags=str_replace('、',',',$_POST['tax_input']['post_tag']);

if($_POST['newtag']['post_tag']){

$tags.=','.str_replace('、',',',$_POST['newtag']['post_tag']);

}

$data ='key='.$key.'&title='.$title.'&content='.$content.'&date='.$date.'&category='.$category.'&type='.$type.'&tags='.$tags;

$ch = curl_init (); //cURL模拟POST

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;

}

}

上述两处代码是作者E享乐在百度贴吧所公布。看完代码可能有很多人怀疑,只有主送端的代码,里面并不带有接收端网站的帐号和密码之类的信息,能成功发送和接收吗?笔者曾经试图去找作者的原博文求证是否还有保留,但由于其博客网站不存在只好作罢。这里要说明一下,本人使用了两个同步用户数据的网站对这组代码进行测试,最终是成功的。~~**点击查看:两WP网站如何同步用户数据库**~~所以如果各位没有试出效果,可能是由于两网站没有关联所致。虽然测试成功,但是并不如人所愿,主送站每编辑一次文章就会重复发送一篇到接收站,也没有目录可言。不过之所以分享,是觉得这组代码跟网上所公布的“同步微博”代码相似,既然同步微博能正常实现同步,那么这个代码经过修改肯定也可以。大家有需要就用吧,有总比没有要强!也敬请关注本博主,下次抽时间修改一下,完善后再写文章公布!

未经允许不得转载:http://jdks100.com/风语守望_博客 » WordPress多个不同博客网站间文章同步代码+插件(分享测试效果)


分享到:更多 ()
关注“公众平台”:     学习交流QQ群(185619299):

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  • 0 + 3 = ?

风语守望_博客,共同学习,一起成长!

网站首页联系我们
防复制