[纯代码]WordPress自动同步到新浪微博头条文章

沃森博客 2017年9月23日22:09:18WordPress评论574阅读模式

以前想把博客加个微博自动同步功能,在网上看了众多方法都是通过”微博高级写入接口“来实现,但这个接口已在六月关闭了无法申请,也就把这个想法放下了。后面在一次逛微博开放平台时发现了个”微博头条开放协议“,这不就是可以实现同步吗?百度一下,发现”祭夜博客“分享了这个接口实现的代码,经过测试确实可行。于是,沃森博客把”[纯代码]WordPress自动同步到新浪微博头条文章“的方法分享下,方便下别人也备份下代码。

 

1、申请微博头条文章高级写入接口

申请传送--->微博开放平台
[纯代码]WordPress自动同步到新浪微博头条文章

2、实现代码

半下代码加到当前主题的functions.php文件中。

PS:注意修改第9、10、11、44行数据,第62行建议关闭,异常时再打开。

Code???ViewPrint
  1. function?post_to_sina_weibo_toutiao($post_ID)?{
  2. ????//ini_set('display_errors',?true);
  3. ????if(wp_is_post_revision($post_ID))?return;???????????????????????????//修订版本(更新)不发微博??
  4. ????$get_post_info?=?get_post($post_ID);
  5. ????$get_post_centent?=?get_post($post_ID)->post_content;
  6. ????$get_post_title?=?get_post($post_ID)->post_title;
  7. ????if?($get_post_info->post_status?==?'publish'?&&?$_POST['original_post_status']?!=?'publish')
  8. ????{
  9. ????$appkey?=?'App?Key';??????????//App?Key
  10. ????$username?=?'用户名';????????//用户名
  11. ????$userpassword?=?'密码';????//密码
  12. ????$request?=?new?WP_Http;
  13. ????/*?获取文章标签关键词*/
  14. ???????$tags?=?wp_get_post_tags($post_ID);
  15. ???????foreach?($tags?as?$tag?)?{
  16. ??????????$keywords?=?$keywords.'#'.$tag->name."#";
  17. ???????}
  18. ????$status?=?'【'?.?strip_tags($get_post_title)?.?'】?'?.?mb_strimwidth(strip_tags(apply_filters('the_content',?$get_post_centent))?,?0,?132,?'?');
  19. ????$api_url?=?'https://api.weibo.com/proxy/article/publish.json';??
  20. ????$body?=?array(
  21. ????????'title'???=>?strip_tags($get_post_title),?????????//头条的标题
  22. ????????'content'?=>?get_post($post_ID)->post_content.'
  23. 原文地址:'?.?get_permalink($post_ID),????//头条的正文
  24. ????????'cover'???=>?mmimg($post_ID),?????????????????//头条的封面
  25. ????????'summary'?=>?mb_strimwidth(strip_tags(apply_filters('the_content',?$get_post_centent))?,?0,?110,?'...'),??????//头条的导语
  26. ????????'text'????=>?mb_strimwidth(strip_tags(apply_filters('the_content',?$get_post_centent))?,?0,?110,?$status).$keywords.'原文地址:'?.?get_permalink($post_ID),????//微博的内容
  27. ????????'source'??=>?$appkey
  28. ????);
  29. ????$headers?=?array('Authorization'?=>?'Basic?'?.?base64_encode("$username:$userpassword"));
  30. ????$result?=?$request->post($api_url,?array('body'?=>?$body,'headers'?=>?$headers));
  31. ????logInfo($result['body']);
  32. ??}
  33. }
  34. add_action('publish_post',?'post_to_sina_weibo_toutiao',?0);????????//给发布文章增加一个分享微博头条文章的动作
  35. //获取封面
  36. function?catch_that_image()?{
  37. global?$post,?$posts;
  38. $first_img?=?'';
  39. ob_start();
  40. ob_end_clean();
  41. $output?=?preg_match_all('/<img.+src=\"?(.+\.(jpg|gif|bmp|bnp|png))\"?.+>/i',$post->post_content,?$matches);
  42. $first_img?=?$matches?[1]?[0];?????????????//将文章第一张图片的地址赋值给$first_img
  43. if(empty($first_img)){??????????????????????????//文章第一张图为空,也就是整篇文章没有图片,将默认设置的图片的地址赋值给$first_img
  44. $popimg=?'默认图片地址(可以是LOGO等)';
  45. $first_img?=?"$popimg";}
  46. return?$first_img;}
  47. function?mmimg($postID)?{
  48. ?$cti?=?catch_that_image();??????????????????//得到$first_img的值,并赋值给$cti
  49. ?$showimg?=?$cti;???????????????????????????????//将$cti的值赋值给$showimg
  50. ?has_post_thumbnail();
  51. ?if?(?has_post_thumbnail()?)?{???????????????//判断是否有特色图片,有则将$showimg的值替换为特色图片的地址,否则不变
  52. ?$thumbnail_image_url?=?wp_get_attachment_image_src(?get_post_thumbnail_id(),?'thumbnail');
  53. ?$shareimg?=?$thumbnail_image_url[0];
  54. ?}?else?{
  55. ?$shareimg?=?$showimg;};
  56. ?return?$shareimg;
  57. }
  58. //调用代码:mmimg($post_ID)
  59. ?//写日志函数
  60. function?logInfo($msg)
  61. {
  62. ???$logSwitch?=?1;?????????????????????????????????????//?日志开关:1表示打开,0表示关闭
  63. ????$logFile????=?'/tmp/sync_weibo.log';????//?日志路径???????????
  64. ????if?($logSwitch?==?0?)?return;
  65. ????date_default_timezone_set('Asia/Shanghai');
  66. ????file_put_contents($logFile,?date('[Y-m-d?H:i:s]:?')?.?$msg?.?PHP_EOL,?FILE_APPEND);
  67. ????return?$msg;
  68. }

3、实现效果

[纯代码]WordPress自动同步到新浪微博头条文章

至此,实现[纯代码]WordPress自动同步到新浪微博头条文章的方法就说完了。

PS:整理自https://www.jysafe.cn/1940.air

沃森博客
  • 本文由 发表于 2017年9月23日22:09:18
  • 本文来自互利网收集整理,问题反馈联系邮箱:wosnnet@foxmail.com,转载请务必保留本文链接:https://wosn.net/626.html

发表评论