php多网址文章发布,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';

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;

}

}

WordPress站点同步数据库可以通过以下步骤来实现: 1. 备份数据库:在进行任何数据库操作之前,请务必备份所有相关的WordPress站点数据库。这样,在出现任何问题时,可以轻松还原数据。 2. 导出数据库:对于要同步WordPress站点,导出其数据库。可以使用phpMyAdmin或者MySQL的命令行工具来完成导出操作。导出的文件将是一个.sql文件,包含了整个数据库的结构和数据。 3. 导入数据库:对于要同步的目标WordPress站点,使用相同的工具导入之前导出的数据库文件。确保目标站点的数据库结构和数据与源站点保持一致。 4. 更新配置文件:在目标站点WordPress配置文件中,更新与数据库相关的信息,包括数据库名称、用户名、密码和主机信息。这样目标站点将与源站点使用相同的数据库连接。 5. 复制文件:将源站点的所有文件复制到目标站点的相应位置。确保文件完整且目录结构保持一致。 6. 更新URL:在目标站点的数据库中,将所有与源站点URL相关的记录更新为目标站点的URL。这可以通过执行SQL查询或使用WordPress插件来实现。 7. 清除缓存:如果使用了缓存插件或服务,需要清除目标站点的缓存,以确保最新的数据能够正常显示。 重复以上步骤,可以将多个WordPress站点的数据库同步起来。请注意,在进行数据库同步时,要特别小心操作,以避免意外删除或更改数据。强烈建议在测试环境中进行验证,确保同步过程不会影响到线上站点的正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值