Idee: Erstellen Sie eine API auf einer anderen WordPress-Site, verwenden Sie cURL, um die POST-Anforderungs-API beim Veröffentlichen des Artikels zu simulieren, und verwenden Sie die Funktion wp_insert_post(), um den Artikel zu erstellen. Unterstützt die Synchronisierung von Artikeltiteln, Inhalten, Typen, Kategorien und Tags. Für die Kategoriesynchronisierung ist es erforderlich, dass eine andere Site ebenfalls eine Kategorie mit demselben Namen erstellt.
Erstellen Sie eine PHP-Datei mit dem Namen post.php im Stammverzeichnis einer anderen Site mit dem folgenden Code:
//以下为代码正文… <?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 ); }
Fügen Sie sie dann vor dem letzten ?> der Datei „functions.php“ des Themes ein Code wurde heruntergeladen, der Schlüssel wurde festgelegt und die API-Adresse wurde geändert
//文章推送 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($_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; } }
Weitere technische Artikel zu WordPress finden Sie in der Spalte WordPress-Tutorial, um mehr zu erfahren!
Das obige ist der detaillierte Inhalt vonArtikel zur Synchronisierung von WordPress-Multisite-Einstellungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!