近些天幫客戶實現(xiàn)了這樣一個功能:將他們家三個都已經(jīng)運營了兩三年的公眾號的所有文章都發(fā)布至wordpress 搭建的博客類網(wǎng)站上面去椿肩,且分成三個不同的欄目和作者瞻颂,且微信文章的格式要求同步過去不能有所改變,然后微信上面引用的圖片肯定要正常顯示郑象,不能顯示防盜鏈贡这。
而且還需要做出一個微信文章同步至wordpress 的接口:之后他們更新微信文章時,只需要在輸入框輸入此篇文章的鏈接厂榛,就可以自動同步至他們的wordpress 網(wǎng)站上面去盖矫。且排版一模一樣。免去了再次在wordpress 后臺編輯的多余時間击奶,免去了wordpress 后臺編輯文章渣的體驗辈双。
目前此項目已經(jīng)成功,現(xiàn)在在此總結(jié)下經(jīng)驗柜砾。
要求微信文章排版辐马、格式等原封不動地搬至另一個網(wǎng)站上面,那么最直接的辦法便是獲得此文章正文的html
代碼,然后插入至wordpress 對應(yīng)的正文數(shù)據(jù)庫里面即可喜爷,即數(shù)據(jù)表wp_posts
冗疮。原理很簡單。
但雖然原理簡單檩帐,但還是有些地方需要注意术幔。項目實施過程中,碰到的一個問題便是wordpress 會自動將源代碼進(jìn)行一些修改湃密,導(dǎo)致顯示在前端的文章排版錯亂诅挑。這里我也是花了很久才找到了源頭,下面列出我筆記中的一段話:
修改single.php 中the_content(); 變成echo get_the_content(); 即可泛源,表示不經(jīng)過wordpress 自帶的過濾器拔妥,保證源代碼的不變!
由于之前有過微信文章爬蟲的經(jīng)驗达箍,所以可以通過微信頁面獲取到時間没龙、公眾號標(biāo)題、封面缎玫、文章摘要等字段的數(shù)據(jù)硬纤,那這時也就可以用到了,直接抓取到對應(yīng)的信息然后根據(jù)wordpress 中對應(yīng)數(shù)據(jù)表wp_posts
的字段來一一轉(zhuǎn)換過去即可赃磨。
考慮到三個公眾號要有不同的欄目和作者筝家,同理,操作數(shù)據(jù)庫中對應(yīng)的字段信息即可邻辉,不同的欄目信息修改數(shù)據(jù)表wp_term_relationships
溪王,不同的作者操作數(shù)據(jù)表wp_posts
中的author
字段即可。當(dāng)然首先是需要新建欄目和作者的信息值骇,上面兩個表中只是插入對應(yīng)的id
莹菱。
關(guān)于文章中的圖片處理方式,我是直接寫了一段額外的代碼雷客,將微信文章中的所有圖片鏈接都提取出來芒珠,然后下載至服務(wù)器對應(yīng)的文件夾中桥狡,之后再改變此文章html
中對應(yīng)的圖片鏈接地址即可搅裙。
關(guān)于將他們的歷史文章都導(dǎo)入進(jìn)wordpress 網(wǎng)站中,只需先通過微信抓取軟件獲取他們所有文章的url鏈接
裹芝,然后再寫個循環(huán)運行即可部逮。不過中間也有許多坑,慢慢體會吧嫂易。
當(dāng)然兼容他們指定的主題也花了一定的時間兄朋,不過主要是操作數(shù)據(jù)表wp_postmeta
。
wordpress 是建立在PHP 上面的怜械,以上實現(xiàn)邏輯應(yīng)該任何后端語言都是可以實現(xiàn)的颅和,奈何我的PHP 實在太渣傅事,所以我是用的node 來實現(xiàn)的此功能,不過最終實現(xiàn)效果還是挺不錯的峡扩,只不過最終的微信文章同步至wordpress 軟件調(diào)用的是另外一個端口罷了蹭越。不過這些都好解決,用nginx
做下端口轉(zhuǎn)換即可教届。
軟件邏輯總結(jié):之前做微信爬蟲時响鹃,是將數(shù)據(jù)保存在自己制定的數(shù)據(jù)表中,現(xiàn)在只需將微信爬蟲爬來的數(shù)據(jù)案训,寫進(jìn)wordpress 中對應(yīng)的數(shù)據(jù)表中即可买置。
如果您也需要實現(xiàn)此功能,但又沒有技術(shù)或時間强霎,可以聯(lián)系我微信:18817507530忿项。
客戶網(wǎng)站鏈接:學(xué)習(xí)哥