WordPress 2.0無法 trackback時的簡易檢查

雖然之前我有針對 WordPress 2.0 無法trackback時,整理了一個簡單的解決方案,不過還是陸陸續續有人反映一樣trackback不出去。

這些不管是用email,還是直接在迴響裡反映的人,有的是因為直接把 diff 檔覆蓋掉原來的source(所以我後來又釋出了已經patch過的版本),有的則是說改過了還是不行。想一想,我決定談談我自己碰到無法trackback時,如何檢查這個狀況。

由於 WP 2.0的 trackback機制是把從資料庫中,第一篇到最後一篇文章裡還沒成功發出去的trackback都再試一遍,所以當我們發布一篇新文章時,程式會去把資料庫中所有還沒成功 trackback出去的部份都再試一次。會不會,問題就出在這兒呢? 有一個很簡單的檢查方式:手動執行 trackback 的script。trackback script的位置在 [blog_url]/wp-admin/execute-pings.php,也就是說,以這個blog為例,trackback script的URL就在 http://blog.serv.idv.tw/wp-admin/execute-pings.php。使用browser連往這個URL,它會開始執行前述的trackback動作,在畫面上會看到:

Trackback : [IDOOO]
Trackback : [IDXXX]
Done.

其中[IDOOO]跟[IDXXX]是還有trackback沒送出去的文章的ID,如果全部送出去了,下次再執行的時候,應該就只剩下一行 “Done.”了。所以如果發現每一次執行手動trackback時都有某行 Trackback: [IDXXX]出現,就去該文章裡面看看,是不是有哪個trackback URL 現在早已不存在/掛了,導致trackback一直送不過去。

再來,檢查看看你的trackback是不是被紀錄為早已送出。

檢查要送出trackback的文章(可以在URL列輸入 [blog_url]/http://wp-admin/post.php?action=edit&post=[IDXXX]),看看trackback及already pinged 部份,如果要trackback的URL已經在already pinged,那麼WordPress 是不會執行trackback動作的。如果真的要再重送一次,可能要用到像phpMyAdmin之類的工具,到資料庫中去把對應的欄位修改掉才行。

如果已經被紀錄為ping 了出去,卻又沒有在對方的站台上看到。那很有可能是對方有安裝 Spam Karma這一類防堵trackback SPAM的plugin。在預設的選項之下,Spam Karma會檢查你送去的trackback,連回到你的文章裡,看看是不是真的有提到對方的URL,當在你的文章中找不到對方的URL時,就很容易被視為Spam。舉例來說,如果今天你寫了一篇看納尼亞傳奇的感想,然後發現某A也有寫一篇類似的感想。雖然你在文中沒有提到某A的那篇文章,可是你想要讓某A知道你也是心有戚戚焉,所以你輸入某A那篇文章的trackback URL,送了通trackback過去。但是某A所安裝的 Spam Karma檢查你的文章,發現沒有提到某A那篇文章的URL,就把你認定是Spam,因而沒有顯示出來。這個情況,也常讓我們誤以為trackback失敗了。

以上是數個我所想到可能發生的狀況,供大家參考。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

%d 位部落客按了讚: