>  기사  >  CMS 튜토리얼  >  WordPress 다중 사이트 설정 동기화 기사

WordPress 다중 사이트 설정 동기화 기사

尚
원래의
2019-07-16 13:53:505765검색

WordPress 다중 사이트 설정 동기화 기사

아이디어: 다른 WordPress 사이트에 API를 만들고, 기사를 게시할 때 cURL을 사용하여 POST 요청 API를 시뮬레이션하고, wp_insert_post() 함수를 사용하여 기사를 만듭니다. 기사 제목, 콘텐츠, 유형, 카테고리 및 태그의 동기화를 지원합니다. 카테고리 동기화를 위해서는 다른 사이트에서도 동일한 이름의 카테고리를 생성해야 합니다.

다른 사이트의 루트 디렉터리에 post.php라는 PHP 파일을 만듭니다. 코드는 다음과 같습니다.

//以下为代码正文…
<?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 );  }

그런 다음 테마의 function.php 파일의 마지막 ?> 앞에 코드를 추가하고 키를 설정합니다. API 주소

//文章推送
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;  
   }  }

더 많은 워드프레스 관련 기술 기사를 보려면 워드프레스 튜토리얼 칼럼을 방문하여 알아보세요!

위 내용은 WordPress 다중 사이트 설정 동기화 기사의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.