Disqus」是一個可以取代網站原有的留言系統,因為美觀、功能強及使用方便,所以早期吸引不少人使用,如下圖:

但後來因為使用免費版的會被強制放廣告,所以有不少人就不再使用了,但因為Disqus的留言系統也還不錯,所以我有一個別的網站,都是每個月付12美金持續的使用中。

同步(Syncing)功能無法使用

而在WordPress的Disqus外掛頁面,有個「同步(Sync)」功能,如下圖:

以WordPress來說,這個功能是用來把使用者輸入到Disqus的留言,同步到WordPress原本的留言系統中,但很奇怪的是,只要一按下「Enable Auto Syncing」,就會出現「Error attempting to enable syncing」錯誤訊息。

而且想要使用「Manually Sync Comments」時,每次只要同步一小段時間之後,就會停止下來,這個問題國外也有許多人有發生過:

Manually Sync Comments never ends

Disqus匯出(Export)的XML檔案

再來,Disqus也還有一個備份匯出的功能,可以把目前在Disqus上的所有資料,匯出到一個XML檔,但很奇怪的是,每次我要解壓縮這個被gz壓縮好的xml檔案時,都會出現一個「invalid compressed data–format violated」錯誤訊息,看起來檔案好像有損壞掉,但檔案又好像可以開。

此外,Disqus雖然可以匯出XML檔案,但官方說這檔案只供「備份」用途使用,既無法匯到Disqus的系統,也無法再匯回WordPress裡,所以就等於你想要使用的話,還要再寫一個Parser程式,來解析這個備份的XML檔案…,有夠麻煩的。

The nightmare that is Disqus export, and import into WordPress

總之,有好多隱憂在,雖然現在仍然持續使用付費的服務,但就怕哪天Disqus會突然宣佈要停止服務,所以現階段,就一定要趕快解決這個備份的問題,要不然用起來真的不安心啊。

解決方案

要根本解決這個問題,就是要把Disqus在WordPress的Sync的外掛功能搞定,目前Disqus for WordPress的最新版是3.0.22 版,總覺得我該開啟、該設定的都弄了,搞了非常久,但後來「Auto Syncing」的功能忽然可以開啟了…

我不確定是哪邊解決了,只記得是在開啟「Single Sign-on (SSO)」之後,還有我還安裝了「WP Data Access」、「Delete All Comments of wordpress」這兩個外掛之後,功能才正常。

但Auto Syncing只是針對新增的留言會同步,對於之前的舊留言,並沒有做處理,想要處理的話,還是得用「Manually Sync Comments」來同步舊有的留言,但這個功能在同步一小段時間之後,還是都會中斷。

所以這邊大概就是只能利用匯出的XML檔案,也就是把Disqus自訂義的XML,轉換成WordPress可以接受的格式,所以我就在網路上尋找,看有沒有人已經寫好外掛可以做這個事,但找到的都是舊的程式,這些所有的工具,不是下載不到,就是已經不能使用了。

所以非得自己寫程式了嗎?就抱著這個問題去睡覺了,因為已經凌晨三點多了。

問題迎刃而解

隔天起床,我利用「VMware Workstation Player」,重新架設了一台Web Server(關於架站,你可以參考這篇文章「如何架出安全性較高的網站?」來學架站),然後將我的網站設定在這個測試的Server上面,如下圖:

那時忽然想到,其實Disqus這個備份功能,以前好像是好的,所以就去找了以前網站的備份,幸好,我還有以前Disqus的2.85版,所以我就把新版的刪除,換回舊版的,如下圖:

剛放上去之後,去按下〔Sync Comments〕時,還是會卡住,但我後來把「Disable automated comment importing」給打勾之後,再重新按下〔Sync Comments〕時,就能開始成功能同步了,如下圖:

第一次完整同步時,可以勾選「Remove all imported Disqus comments before syncing.」,在同步前,先把舊的留言都移除,再開始同步。

在留言同步完成之後,我再把測試用Server的MySQL資料庫匯出,然後再把匯出的資料庫,再匯入原本的資料庫中,最後再把新版Disqus外掛的「Enable Auto Syncing」打開,就完全解決備份新舊留言這個問題了,感動…

以下提供

Disqus Comment System 2.85版下載

Google廣告