Heim >CMS-Tutorial >WordDrücken Sie >Artikel zur Synchronisierung von WordPress-Multisite-Einstellungen

Artikel zur Synchronisierung von WordPress-Multisite-Einstellungen

尚
Original
2019-07-16 13:53:505808Durchsuche

Artikel zur Synchronisierung von WordPress-Multisite-Einstellungen

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(&#39;WP_USE_THEMES&#39;, false);
require_once("wp-load.php");
$key=&#39;123456&#39;; //设置启动API的密钥
if($_POST[&#39;key&#39;]==$key){  
    $categorys=explode(&#39;,&#39;,$_POST[&#39;category&#39;]);  
    $category=array();  
    for($x=1;$x<count($categorys);$x++) {  
     $category[$x-1]=get_cat_ID($categorys[$x]);  
    }  
    $info = array(  
    &#39;post_title&#39; => $_POST[&#39;title&#39;],  
    &#39;post_content&#39; => $_POST[&#39;content&#39;],  
    &#39;post_status&#39; => &#39;publish&#39;,  
    &#39;post_author&#39; => 1, //发布文章的作者ID,1 为管理员  
    &#39;post_date&#39; => $_POST[&#39;date&#39;],  
    &#39;tags_input&#39; => $_POST[&#39;tags&#39;],  
    &#39;post_category&#39; => $category,  
    &#39;post_type&#39; => $_POST[&#39;type&#39;]  
    );  
    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(&#39;publish_post&#39;, &#39;fanly_sync_post&#39;); //钩子,在文章发布时执行  
function fanly_sync_post($post_ID) {  
    $key=&#39;www.exiang2.com&#39;; //输入你设置的密钥  
    $url=&#39;http://www.domain.com/post.php&#39;;//API地址,就是接受数据的那个站点
    $post_info = get_post($post_ID);  
    if ( $post_info->post_status == &#39;publish&#39; && $_POST[&#39;original_post_status&#39;] != &#39;publish&#39; ) {  
        $title=$_POST[&#39;post_title&#39;];  
        $content=$_POST[&#39;content&#39;];  
        $date=$_POST[&#39;aa&#39;].&#39;-&#39;.$_POST[&#39;mm&#39;].&#39;-&#39;.$_POST[&#39;jj&#39;].&#39; &#39;.$_POST[&#39;hh&#39;].&#39;:&#39;.$_POST[&#39;mn&#39;].&#39;:&#39;.$_POST[&#39;ss&#39;];  
        $category=&#39;&#39;;  
        for($x=1;$x<count($_POST[&#39;post_category&#39;]);$x++) {  
          $category.=&#39;,&#39;.get_cat_name($_POST[&#39;post_category&#39;][$x]);  
        }  
        $type=$_POST[&#39;post_type&#39;];  
        $tags=str_replace(&#39;、&#39;,&#39;,&#39;,$_POST[&#39;tax_input&#39;][&#39;post_tag&#39;]);  
        if($_POST[&#39;newtag&#39;][&#39;post_tag&#39;]){  
            $tags.=&#39;,&#39;.str_replace(&#39;、&#39;,&#39;,&#39;,$_POST[&#39;newtag&#39;][&#39;post_tag&#39;]);  
        }  
        $data = &#39;key=&#39;.$key.&#39;&title=&#39;.$title.&#39;&content=&#39;.$content.&#39;&date=&#39;.$date.&#39;&category=&#39;.$category.&#39;&type=&#39;.$type.&#39;&tags=&#39;.$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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn