无插件实现WordPress多个站点同步文章更新方法

今天晚上有几个网友在群里讨论如何将WordPress更新的文章同步到他备用的站点中。这个同学的想法比较奇特,他是希望自己备用站点的数据保存同步更新,起到备份作用,本站有些不理解,为什么不采用定期数据库备份或者快照备份,居然要这样操作,不懂什么意思。

不管他要做什么,问问有没有这样的办法实现的,这里我找到网上有解决办法,让他试试看。这里有看到这个办法,记录下来,明天问问他是否可行,有空的时候我也找个测试站点试试。

1、同步站点

这里我们在需要同步到的站点目录下方一个发布文件。

//文章接收 define(\'WP_USE_THEMES\', false); require_once(\"wp-load.php\"); $key=\'itbulu.com\'; //设置启动API的密钥 if($_POST[\'key\']==$key){ $categorys=explode(\',\',$_POST[\'category\']); $category=array(); for($x=1;$x $_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 ); }

我们创建一个publish.php文件。注意要修改密钥,这个是明码,我们需要注意复杂一些,实际上这个文件如果被泄露是很不安全的,以后看看有没有办法做成加密。

2、发布站点

//发布文章推送 add_action(\'publish_post\', \'wp_sync_posts\'); function wp_sync_posts($post_ID) { $key=\'itbulu.com\'; //和上面密钥一样 $url=\'http://www.域名.com/publish.php\';//我们要同步的网站域名地址和上面PHP文件 $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