wordpress主题|WordPress多站点发布文章同步的例子

时间:2020-09-07  来源:WordPress  阅读:

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

在另一个站点的根目录创建一个命名为post.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      $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           $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; 
   } 
}

Over,喜欢的朋友哪去随便折腾吧!

wordpress主题|WordPress多站点发布文章同步的例子

http://m.bbyears.com/wangyezhizuo/97300.html

推荐访问:wordpress教程 wordpress大学
相关阅读 猜你喜欢
本类排行 本类最新