代码实现WordPress多个站点同步文章更新方法

代码实现WordPress多个站点同步文章更新方法

1、同步站点

这里我们在需要同步到的站点目录下方一个发布文件。在另一个站点的根目录创建一个文件,命名为 E-sync-post.php,并设置用于启动 API 的 key 代码如下:

    <?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<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 );
    }
    ?>

我们创建一个 E-sync-post.php 文件。注意要修改密钥,这个是明码,我们需要注意复杂一些,实际上这个文件如果被泄露是很不安全的,以后看看有没有办法做成加密。

2、发布站点

    /*
    文章发表后同步到另一个站点(发送)
    */
    add_action('publish_post', 'E_sync_post'); //钩子,在文章发布时执行
    function E_sync_post($post_ID) {
        $key='123456'; //输入你设置的密钥
        $url='http://www.22vd.com/E-sync-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;
       }
    }

注意修改一些标注的参数,要和网站一致。我们试试是否有用。

温馨提示:本文最后更新于2022-05-12 20:16:36,某些文章具有时效性,若有错误或已失效,请在下方留言或联系乡野博文
您阅读这篇文章共花了: 0小时00分00秒
-----本页内容已结束,喜欢请分享!-----
© 版权声明
THE END
喜欢本站内容,请点【点赞】【分享】和【收藏】~
点赞8 分享
评论 抢沙发

请登录后发表评论