php发布wordpress文章,WordPress文章发布后自动同步文章到其他wordpress博客

前些日子在贴吧看到一位小伙伴需要这个功能,现在将我的实现方法分享给大家。WordPress文章发布后同步文章到其他wordpress博客教程

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

bd885e0bc6d4d14d.png

实现

在另一个站点的根目录创建一个文件,命名为E-sync-post.php,代码如下:

并设置用于启动 API 的 key

/*

文章发表后同步到另一个站点(接收)

作者:E享乐(www.exiang2.com)

*/

define('WP_USE_THEMES', false);

require_once("wp-load.php");

$key='www.exiang2.com'; //设置启动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 地址

/*

文章发表后同步到另一个站点(发送)

作者:E享乐(www.exiang2.com)

*/

add_action('publish_post', 'E_sync_post'); //钩子,在文章发布时执行

function E_sync_post($post_ID) {

$key='www.exiang2.com'; //输入你设置的密钥

$url='http://www.exiang2.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

$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;

}

}

好了,就酱~

来源:E享乐

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WordPress文章隐藏内容登陆后可见插件 功能:您可以隐藏文章的部分内容,使得用户必须登录,才能浏览。可以方便给你的注册用户分享某些内容,游客只能被拒之门外了。 2.0版本添加了新的标签 <!--loginview start-->hidden contents.<!--loginview end-->,并在HTML模式下,添加了loginview按钮,方便用户添加隐藏内容。2.0版借鉴了WordPress插件Easy2hide的部分代码。升级至2.0版后,原来的标签[loginview]仍然有效。 安装方法:    1. 下载插件,解压缩,你将会看到一个文件夹login-to-view-all,然后将其放置到插件目录下,插件目录通常是 `wp-content/plugins/`    2. 在后台对应的插件管理页激活该插件Login to view all    4. 完成 使用说明:    1. 在WordPress后台编辑文章的时候,切换到HTML模式,选中你要隐藏的内容,点击按钮 "loginview" 即可用"<!--loginview start-->" 和 "<!--loginview end-->" 将隐藏内容括起来;使用这个标签的好处是,你停用本插件后,该标签不会被显示出来。    2. 如果你不喜欢HTML代码模式,可以使用 [loginview] 和 [/loginview] 将你想要隐藏的内容括起来,该标签支持可视化模式和HTML编辑模式。你的文章内容应该像这样子:[loginview]这里是你要隐藏的内容[/loginview]    3. 这样未登录的用户浏览文章的时候,将无法阅读隐藏的内容。   效果预览图: 1、在后台编辑文章,添加隐藏内容 2、未登录用户将无法查看隐藏的内容

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值