首頁>技術>

WordPress可以利用自建API在不同站點之間自動同步釋出文章,支援主站的文章標題、內容、型別、分類、標籤等同步到備用站。分類需要在分站建立一個同名的分類。

想法:在另一個WordPress站點建立一個API。釋出文章時,使用cURL模擬POST請求API,使用wp_insert_post()函式建立文章。

支援文章標題、內容、型別、分類、標籤同步。分類要求另一個站點具有相同名稱的分類。別名和ID不必相同。

1、首先,分站的根目錄下建立post.php檔案,檔案程式碼如下:

<?php//文章接收define('WP_USE_THEMES', false);require_once("wp-load.php");$key='lianghg.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 );}

2、然後在主站正在使用中的主題下functions.php檔案中新增以下程式碼,並設定 key,修改 API 地址:

//文章推送add_action('publish_post', 'fanly_sync_post'); //鉤子,在文章釋出時執行function fanly_sync_post($post_ID) {$key='lianghg.com'; //輸入你上一步設定的金鑰$url='https://www.yourdomain.com/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模擬POSTcurl_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;}}

https://www.myunma.com/blog/wordpresstb 原文地址

5
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • linux使用者管理命令