WordPress多站點發布文章同步

2020年2月6日來源:小獸wordpress 評論 33人看過

思路:在另一個 WordPress 站點創建一個API,文章發布時用cURL模擬 POST 請求 API 利用wp_insert_post()函數來創建文章。支持同步文章標題、內容、類型、分類、標簽,分類需要另一個站點也有創建相同名稱的分類,別名和ID不需要相同。

在另一個站點的根目錄創建一個命名為post.php的php文件,代碼如下:

  1. //以下為代碼正文…
  2. <?php
  3. //文章接收??
  4. define('WP_USE_THEMES',?false);
  5. require_once("wp-load.php");
  6. $key='123456';
  7. if($_POST['key']==$key){
  8. ????$categorys=explode(',',$_POST['category']);
  9. ????$category=array();
  10. ????for($x=1;$x<count($categorys);$x++)?{
  11. ?????$category[$x-1]=get_cat_ID($categorys[$x]);
  12. ????}
  13. ????$info?=?array(
  14. ????'post_title'?=>?$_POST['title'],
  15. ????'post_content'?=>?$_POST['content'],
  16. ????'post_status'?=>?'publish',
  17. ????'post_author'?=>?1,?//發布文章的作者ID,1?為管理員??
  18. ????'post_date'?=>?$_POST['date'],
  19. ????'tags_input'?=>?$_POST['tags'],
  20. ????'post_category'?=>?$category,
  21. ????'post_type'?=>?$_POST['type']
  22. ????);
  23. ????wp_insert_post(?$info?);
  24. }

然后在主題的functions.php文件的最后一個?>前加入已下代碼,并設置 key,修改 API 地址

  1. /文章推送
  2. add_action('publish_post',?'fanly_sync_post');?//鉤子,在文章發布時執行??
  3. function?fanly_sync_post($post_ID)?{
  4. ????$key='www.exiang2.com';?//輸入你設置的密鑰??
  5. ????$url='http://www.domain.com/post.php';//API地址,就是接受數據的那個站點
  6. ????$post_info?=?get_post($post_ID);
  7. ????if?(?$post_info->post_status?==?'publish'?&&?$_POST['original_post_status']?!=?'publish'?)?{
  8. ????????$title=$_POST['post_title'];
  9. ????????$content=$_POST['content'];
  10. ????????$date=$_POST['aa'].'-'.$_POST['mm'].'-'.$_POST['jj'].'?'.$_POST['hh'].':'.$_POST['mn'].':'.$_POST['ss'];
  11. ????????$category='';
  12. ????????for($x=1;$x<count($_POST['post_category']);$x++)?{
  13. ??????????$category.=','.get_cat_name($_POST['post_category'][$x]);
  14. ????????}
  15. ????????$type=$_POST['post_type'];
  16. ????????$tags=str_replace('、',',',$_POST['tax_input']['post_tag']);
  17. ????????if($_POST['newtag']['post_tag']){
  18. ????????????$tags.=','.str_replace('、',',',$_POST['newtag']['post_tag']);
  19. ????????}
  20. ????????$data?=?'key='.$key.'&title='.$title.'&content='.$content.'&date='.$date.'&category='.$category.'&type='.$type.'&tags='.$tags;
  21. ????????$ch?=?curl_init?();?//cURL模擬POST??
  22. ????????curl_setopt?(?$ch,?CURLOPT_RETURNTRANSFER,?TRUE?);
  23. ????????curl_setopt?(?$ch,?CURLOPT_POST,?TRUE?);
  24. ????????curl_setopt?(?$ch,?CURLOPT_POSTFIELDS,?$data?);
  25. ????????curl_setopt?(?$ch,?CURLOPT_URL,?$url?);
  26. ????????curl_setopt?(?$ch,?CURLOPT_SSL_VERIFYPEER,?FALSE);
  27. ????????$ret?=?curl_exec?(?$ch?);
  28. ????????curl_close?(?$ch?);
  29. ????????return?$ret;
  30. ???}
  31. }
weinxin
加入王卡吉他社
微信掃描左側二維碼,加入淘小鋪掌柜團,免費協助您開通掌柜資格...
  • 版權聲明 本文源自 小獸wordpress, 整理發表于2020年2月6日
  • 除非特殊聲明,本站文章均為原創,轉載請務必保留本文鏈接
樹懶先生的博客 博客

樹懶先生的博客

站點信息 網站Name:樹懶先生的博客 網站Title:樹懶先生的博客 網站Keywords:樹懶先生,博客,運營,個人博客,網站建設,服務器,wordpress,網站優化,LNMP,生活日記,資源分...
匿名

發表評論

匿名網友 填寫信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: