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

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

时间2024-05-22 20:58:03发布访客分类CMS浏览159
导读:今天晚上有几个网友在群里讨论如何将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;
    $xcount($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;
    $xcount($_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;
     }
  }
    

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

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

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 无插件实现WordPress多个站点同步文章更新方法
本文地址: https://pptw.com/jishu/665842.html
spark中mlib的优缺点是什么 WordPress自动设置内容第一张图缩略图的方法

游客 回复需填写必要信息