思路:在另一個WordPress站點創建一個api,文章發布時用curl模擬post請求api利用wp_insert_post()函數來創建文章。支持同步文章標題、內容、類型、分類、標簽,分類同步需要另一個站點也有創建相同名稱的分類,別名和 id 不需要相同。
在另一個站點的根目錄創建一個命名為 post.php 的 php 文件,代碼如下:
//以下為代碼正文… <?php //文章接收 define('WP_USE_THEMES', false); require_once("wp-load.php"); $key='123456'; //設置啟動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?);??}
然后在主題的 functions.php 文件的最后一個?>前加入已下代碼,并設置 key,修改 API 地址
//文章推送 add_action('publish_post',?'fanly_sync_post');?//鉤子,在文章發布時執行?? function?fanly_sync_post($post_ID)?{?? ????$key='www.exiang2.com';?//輸入你設置的密鑰?? ????$url='http://www.domain.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><p>更多wordpress相關技術文章,請訪問<a href="https://www.php.cn/cms/wordpress/" target="_blank">wordpress教程</a>欄目進行學習!</p></count>
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END