#最新
WordPress多站点发布文章同步

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

//以下为代码正文…
<?php  
//文章接收  
define(\'WP_USE_THEMES\', false);  
require_once(\"wp-load.php\");  
$key=\'123456\'; 
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 );  
}

然后在主题的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<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;  
   }  
}

 

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

所有文章为演示数据,不提供下载地址,版权归原作者所有,仅提供演示效果!

虚蕪神琦 教程攻略 WordPress多站点发布文章同步 https://www.xuwsq.com/221.html

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用
查看详情

相关文章

WordPress多站点发布文章同步-海报

分享本文封面