欢迎光临
我们一直在努力

无插件实现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<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 );  }

我们创建一个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<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;     }  }

注意修改一些标注的参数,要和网站一致。

这样,我们试试是否有用。后面蜗牛准备也试试。

赞(0) 打赏
未经允许不得转载:沃园 » 无插件实现WordPress多个站点同步文章更新方法
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏