近些天帮客户实现了这样一个功能:将他们家三个都已经运营了两三年的公众号的所有文章都发布至wordpress 搭建的博客类网站上面去,且分成三个不同的栏目和作者,且微信文章的格式要求同步过去不能有所改变,然后微信上面引用的图片肯定要正常显示,不能显示防盗链。
而且还需要做出一个微信文章同步至wordpress 的接口:之后他们更新微信文章时,只需要在输入框输入此篇文章的链接,就可以自动同步至他们的wordpress 网站上面去。且排版一模一样。免去了再次在wordpress 后台编辑的多余时间,免去了wordpress 后台编辑文章渣的体验。
目前此项目已经成功,现在在此总结下经验。
要求微信文章排版、格式等原封不动地搬至另一个网站上面,那么最直接的办法便是获得此文章正文的html
代码,然后插入至wordpress 对应的正文数据库里面即可,即数据表wp_posts
。原理很简单。
但虽然原理简单,但还是有些地方需要注意。项目实施过程中,碰到的一个问题便是wordpress 会自动将源代码进行一些修改,导致显示在前端的文章排版错乱。这里我也是花了很久才找到了源头,下面列出我笔记中的一段话:
修改single.php 中the_content(); 变成echo get_the_content(); 即可,表示不经过wordpress 自带的过滤器,保证源代码的不变!
由于之前有过微信文章爬虫的经验,所以可以通过微信页面获取到时间、公众号标题、封面、文章摘要等字段的数据,那这时也就可以用到了,直接抓取到对应的信息然后根据wordpress 中对应数据表wp_posts
的字段来一一转换过去即可。
考虑到三个公众号要有不同的栏目和作者,同理,操作数据库中对应的字段信息即可,不同的栏目信息修改数据表wp_term_relationships
,不同的作者操作数据表wp_posts
中的author
字段即可。当然首先是需要新建栏目和作者的信息,上面两个表中只是插入对应的id
。
关于文章中的图片处理方式,我是直接写了一段额外的代码,将微信文章中的所有图片链接都提取出来,然后下载至服务器对应的文件夹中,之后再改变此文章html
中对应的图片链接地址即可。
关于将他们的历史文章都导入进wordpress 网站中,只需先通过微信抓取软件获取他们所有文章的url链接
,然后再写个循环运行即可。不过中间也有许多坑,慢慢体会吧。
当然兼容他们指定的主题也花了一定的时间,不过主要是操作数据表wp_postmeta
。
wordpress 是建立在PHP 上面的,以上实现逻辑应该任何后端语言都是可以实现的,奈何我的PHP 实在太渣,所以我是用的node 来实现的此功能,不过最终实现效果还是挺不错的,只不过最终的微信文章同步至wordpress 软件调用的是另外一个端口罢了。不过这些都好解决,用nginx
做下端口转换即可。
软件逻辑总结:之前做微信爬虫时,是将数据保存在自己制定的数据表中,现在只需将微信爬虫爬来的数据,写进wordpress 中对应的数据表中即可。
如果您也需要实现此功能,但又没有技术或时间,可以联系我微信:18817507530。
客户网站链接:学习哥
网友评论