wordpress多站点设置同步文章

redmaomail 2024-07-24 22:55 阅读数 61 #wordpress

红帽云邮外贸主机

wordpress多站点设置同步文章

思路:在另一个wordpress站点创建一个api,文章发布时用curl模拟post请求api利用wp_insert_post()函数来创建文章。支持同步文章标题、内容、类型、分类、标签,分类同步需要另一个站点也有创建相同名称的分类,别名和 id 不需要相同。

在另一个站点的根目录创建一个命名为 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 );  }
登录后复制

然后在主题的 functions.php 文件的最后一个?>前加入已下代码,并设置 key,修改 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相关技术文章,请访问wordpress教程栏目进行学习!

以上就是wordpress多站点设置同步文章的详细内容,更多请关注红帽云邮其它相关文章!


红帽云邮外贸主机

分享到:
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
    红帽云邮外贸主机
热门
    红帽云邮外贸主机
    红帽云邮外贸主机